iOS 8 bekommen Tastaturhöhe
Ich habe Probleme zuverlässig immer die tatsächliche Höhe der Tastatur. Ich bin hinzufügen einer benutzerdefinierten Symbolleiste, die bedeutete, zu sein, direkt über die Tastatur. Zu tun, also mit layout-constraints, die ich Hinzugefügt habe, einen statischen Raum-constraint zwischen dem unteren Rand des Bildschirms und der Unterseite der Symbolleiste. Wenn die Tastatur angezeigt wird, ändern Sie diese Einschränkung, um die Höhe der Tastatur, die unterschiedlich in iOS 8.
Ändern Sie die Größe der Abstandhalter, derzeit benutze ich folgende Methode, die gefeuert wird auf UIKeyboardDidShowNotification
-(void)keyboardDidShow:(NSNotification*)notification
{
CGFloat height = [[notification.userInfo objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].height;
self.shimConstraint.constant = height;
[self.view layoutIfNeeded];
}
Bedeutet dies die Größe der Einschränkung richtig manchmal, aber oft ist die Tastatur Höhe zurückgegeben wird, ist völlig falsch. Was ist der beste Weg, um zuverlässig erhalten Sie die Höhe der Tastatur, sobald es angezeigt wird?
EDIT: Die Anwendung ermöglicht es dem Benutzer wechseln zwischen einer Reihe von verschiedenen input-Feldern. Einige von Ihnen haben AutoKorrektur deaktiviert, so dass die AutoKorrektur-bar kann oder kann nicht ausgeblendet werden, und die falschen Höhen zurückgegeben, wenn die Wechsel-Felder.
InformationsquelleAutor der Frage James | 2014-09-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Art und Weise Sie es tun, ist richtig, aber Sie möchten möglicherweise verwenden Sie UIKeyboardFrameEndUserInfoKey statt UIKeyboardFrameBeginUserInfoKey. Die end-Benutzer-key ist der Rahmen der Tastatur, wenn Sie fertig animieren und auf dem Bildschirm, damit Sie wissen, es wird sein, dass die Rahmen, während die begin-Taste möglicherweise nicht immer mit dem übereinstimmen, was der Tastatur-Rahmen sein wird, wenn es gezeigt wird.
Könnte es auch sein müssen zusätzliche überlegungen über die Ausrichtung des Geräts an, ich habe nicht mal angeschaut, aber für portrait ist, sollte es funktionieren.
InformationsquelleAutor der Antwort Kris Gellci
Den richtigen Weg, dies zu tun, ist die Verwendung der inputAccesorryView Eigenschaft der UITextField.
Den inputAccessoryView wird automatisch Hinzugefügt, über die Tastatur unabhängig vom Tastatur-Größe.
Wie die Dokumentation besagt:
Weitere Informationen finden Sie hier
https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/InputViews/InputViews.html
InformationsquelleAutor der Antwort Jason Kirchner
Müssen Sie möglicherweise zu tun
[self.view setNeedsLayout]
statt[self.view layoutIfNeeded]
.InformationsquelleAutor der Antwort Dhaval