2016-08-18 3 views
3

Wenn eine Hardware-Tastatur an ein iOS-Gerät (iPad) angefügt ist, ist noch ein kleiner Teil der Software-Tastatur sichtbar: die Symbolleiste mit den Wortvorschlägen und die Undo und Redo Tasten.Get iOS Keyboard Höhe, wenn Hardwaretastatur angeschlossen ist

Ursprünglich hatte ich erwartet, dass die dokumentierte Methode zur Ableitung der Tastaturhöhe (siehe https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html) - in diesem Fall - nur die Höhe dieses Balkens ergeben würde. Die angegebene Höhe ist jedoch immer noch die Höhe der vollen Softwaretastatur (obwohl nur ein Teil sichtbar ist).

Wie können wir die Höhe der sichtbaren Software-Tastatur erreichen, wenn eine Hardware-Tastatur angeschlossen ist?

Antwort

4

Eine Antwort auf diese Frage ist ein Teil von Sarah Elans Antwort auf ihre Frage „How to reliably detect if an external keyboard is connected on iOS 9?“ (ich habe nicht die Frage hier als Duplikat sehen, obwohl die andere Antwort eines Teil davon (auch die spezifische Formel umfasst ist fehlt)):

Eine der sichtbar Höhe der Software-Tastatur durch Inspektion origin.y (statt Size.height), dann subtrahieren Sie diesen Wert aus dem Fenster der Höhe, das heißt

// Called when the UIKeyboardDidShowNotification is sent. 
- (void)keyboardWasShown:(NSNotification*)aNotification 
{ 
    NSDictionary* info = [aNotification userInfo]; 

    // Get the size of the keyboard. 
    NSValue* keyboardFrameValue  = [info objectForKey:UIKeyboardFrameEndUserInfoKey]; 
    CGRect keyboardRectWrtScreen = [keyboardFrameValue CGRectValue]; 

    keyboardWidth = keyboardRectWrtScreen.size.width; 
    keyboardHeight = [[[self view] window] frame].size.height - keyboardRectWrtScreen.origin.y; 
} 
bekommen
+0

Verwenden Sie UIKeyboardDidShow Benachrichtigung hat die wahre Höhe groß – zszen

Verwandte Themen