2016-08-18 3 views
3

ハードウェアキーボードがiOSデバイス(iPad)に接続されている場合、ソフトウェアキーボードの表示されている部分は小さくなります。言葉の候補があるツールバーと取り消しとやり直しボタン。ハードウェアキーボードが接続されているときにiOSキーボードの高さを取得する

当初は、キーボードの高さを推測するための文書化された方法(この場合はhttps://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.htmlを参照)がこのバーの高さを与えると予想していました。しかし、レポートされた高さは、ソフトウェアのキーボード全体の高さです(ただし、一部しか表示されません)。

ハードウェアキーボードが接続されている場合、表示されるソフトウェアキーボードの高さはどのように取得できますか?

答えて

4

この質問への答えは彼女の質問「How to reliably detect if an external keyboard is connected on iOS 9?」 にサラのELANの答えの一部である(他の答えはそれの一部を覆うが、私は、重複としてここに質問が表示されていない(また、特定の式は不足している)):

一つは、ウィンドウの高さからその値を差し引き、その後、代わりにsize.heightのorigin.y()を検査することで、ソフトウェアキーボードの見える高さを得ることができ、それは

// 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; 
} 
です
+0

UIKeyboardDidShowを使用通知が本当の高さを得た – zszen

関連する問題