Hallo zusammen,
ich habe gerade programmiert, daß meine Tastatur, wenn ich in ein Textfeld klicke erscheint und nach Drücken der Return Taste wieder verschwindet. Zudem schiebt es alles nach oben, sobald die Tastatur erscheint, damit nichts von ihr verdeckt ist und geht wieder runter, wenn die Tastatur veschwindet.
Da ich momentan noch im Anfänger- und Lernmodus bin, habe ich hierzu ein Tutorial befolgt und bin nun auf folgendes Problem gestoßen:
Ich habe den Code in meiner TableViewCell stehen und dort steht nicht am Anfang override func ViewDidLoad() sondern override func awakeFromNib().
Dies hat zur Folge, daß er am ende meines Codes mit dem Befehl die Höhe des Keyboards zu messen, mit dem Begriff view nichts anfangen kann (Zeile 53 und 55 im Code).
Mit was ersetzte ich jetzt view oder geht das garnicht in einer TableViewCell?
Logisch gedacht müsste es gehen, aber es fehlt wohl oben die Definition der view. Wer kann mir da mal auf die Sprünge helfen?
Oder muß ich den Code in meinen ViewController packen?
Anbei mein Code:
Alles anzeigen
Besten Dank!
mac
ich habe gerade programmiert, daß meine Tastatur, wenn ich in ein Textfeld klicke erscheint und nach Drücken der Return Taste wieder verschwindet. Zudem schiebt es alles nach oben, sobald die Tastatur erscheint, damit nichts von ihr verdeckt ist und geht wieder runter, wenn die Tastatur veschwindet.
Da ich momentan noch im Anfänger- und Lernmodus bin, habe ich hierzu ein Tutorial befolgt und bin nun auf folgendes Problem gestoßen:
Ich habe den Code in meiner TableViewCell stehen und dort steht nicht am Anfang override func ViewDidLoad() sondern override func awakeFromNib().
Dies hat zur Folge, daß er am ende meines Codes mit dem Befehl die Höhe des Keyboards zu messen, mit dem Begriff view nichts anfangen kann (Zeile 53 und 55 im Code).
Mit was ersetzte ich jetzt view oder geht das garnicht in einer TableViewCell?
Logisch gedacht müsste es gehen, aber es fehlt wohl oben die Definition der view. Wer kann mir da mal auf die Sprünge helfen?
Oder muß ich den Code in meinen ViewController packen?
Anbei mein Code:
Quellcode
- import UIKit
- class PaymentsMonthlyTVCell: UITableViewCell, UITextFieldDelegate {
- @IBOutlet weak var LabelPaymentsMonthly: UILabel!
- @IBOutlet weak var TextPaymentsMonthly: UITextField!
- override func awakeFromNib() {
- super.awakeFromNib()
- // Initialization code
- TextPaymentsMonthly.delegate = self
- self.TextPaymentsMonthly.layer.borderColor = UIColor(red: 200/255, green: 200/255, blue: 200/255, alpha: 1).cgColor
- self.TextPaymentsMonthly.layer.borderWidth = CGFloat(Float(1.0));
- //Listen for keyboard events
- NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillChange(notification:)), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
- NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillChange(notification:)), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
- NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillChange(notification:)), name: NSNotification.Name.UIKeyboardWillChangeFrame, object: nil)
- }
- deinit {
- //stop listening for keyboard hide/show events
- NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIKeyboardWillShow, object: nil)
- NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIKeyboardWillHide, object: nil)
- NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIKeyboardWillChangeFrame, object: nil)
- }
- override func setSelected(_ selected: Bool, animated: Bool) {
- super.setSelected(selected, animated: animated)
- // Configure the view for the selected state
- }
- // Methods or Functions
- func hideKeyboard() {
- TextPaymentsMonthly.resignFirstResponder()
- }
- @objc func keyboardWillChange(notification: Notification) {
- guard let keyboardRect = (notification.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue else {
- return
- }
- if notification.name == Notification.Name.UIKeyboardWillShow ||
- notification.name == Notification.Name.UIKeyboardWillChangeFrame {
- view.frame.origin.y = -keyboardRect.height
- } else {
- view.frame.origin.y = 0
- }
- }
- // Display will go back when clicking return
- func textFieldShouldReturn(_ textField: UITextField) -> Bool {
- TextPaymentsMonthly.resignFirstResponder()
- return true
- }
- }
mac