2016-08-18 93 views
3

將硬件鍵盤連接到iOS設備(iPad)時,軟件鍵盤的一小部分仍可見:包含單詞建議以及撤消和重做的工具欄鈕釦。添加硬件鍵盤時獲取iOS鍵盤高度

本來我希望記錄的推斷鍵盤高度的方法(參見https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html)在本例中只是給出了這個柱的高度。但是,報告的高度仍然是整個軟件鍵盤的高度(儘管只有一部分是可見的)。

當連接硬件鍵盤時,我們如何獲得可見軟鍵盤的高度?

回答

4

對這個問題的回答是的elan薩拉答案的一部分,她的問題「How to reliably detect if an external keyboard is connected on iOS 9?」 (我沒有看到這裏的問題是重複的,但對方的回答涵蓋了其中的一部分(也具體計算公式失蹤)):

人們可以通過檢查origin.y得到可見高度軟鍵盤的(而不是size.height),然後減去窗口的高度值,即

// 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