Ich versuche, eine Stapelansicht über die Tastatur zu bewegen, wenn der Benutzer tippt. Ich verwende den folgenden Code, um die Höhe der Tastatur zu erhalten (aus Move view with keyboard using Swift entnommen).Tastaturhöhe 0
Wenn die Tastatur zum ersten Mal angezeigt wird, funktioniert der Code keyboardSize.height
wird als 226.0
ausgegeben. Wenn die Tastatur jedoch nach dem ersten Mal erneut angezeigt wird, wird keyboardSize.height
als 0.0
ausgegeben. Daher habe ich Probleme, meine Stapelansicht ständig zu verschieben, wenn die Tastatur angezeigt wird. Gelegentlich würde der Code nach dem ersten Versuch wieder funktionieren, aber es dauert nicht mehr als einmal und verhält sich inkonsistent.
Wenn ich einfach ausdrucken keyboardSize
, das erste Mal würde ich (0.0, 736.0, 414.0, 226.0)
bekommen. Nach dem ersten Mal wird keyboardSize
als (0.0, 736.0, 414.0, 0.0)
ausgegeben, sodass nur die Höhe falsch wird.
Wie konnte ich die Höhe der Tastatur konsistent erhalten? Warum tritt dieses Problem auf?
override func viewDidLoad() {
NotificationCenter.default.addObserver(self, selector: #selector(ViewController.keyboardWillShow), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(ViewController.keyboardWillHide), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
}
@objc func keyboardWillShow(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue{
print(keyboardSize.height)
...
}
}
@objc func keyboardWillHide(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue{ ... }
}
könnten Sie bitte beschreiben, was bedeutet "wenn die Tastatur nach dem ersten Mal erscheint wieder"? –
@TungFam Ja. Wenn ich etwas in die Suchleiste eintippe, erscheint die Tastatur. Wenn ich mit der Eingabe fertig bin und die Suche drücke, verschwindet die Tastatur. Wenn ich Text in der Suchleiste umziehe, würde die Tastatur wieder erscheinen, das meine ich mit "wenn die Tastatur nach dem ersten Mal wieder erscheint". –
Haben Sie schon eine Lösung für diesen gefunden? Ich denke, es ist ein Problem mit iOS 11 Beta. Weil ich mit der gleichen Sache konfrontiert war und als ich es auf iOS 10 getestet habe, ist es nicht passiert. – TawaNicolas