当硬件键盘连接到 iOS 设备 (iPad) 时,软件键盘的一小部分仍然可见:带有建议词的工具栏以及撤消和重做按钮。
最初我希望推断键盘高度的记录方法(参见https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html) - 在这种情况下 - 只是给出这个酒吧的高度。但是,报告的高度仍然是完整软件键盘的高度(尽管只有一部分可见)。
当连接了硬件键盘时,我们如何获得可见软件键盘的高度?
这个问题的答案是 Sarah Elans 对她的问题“如何可靠地检测 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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
680 次 |
| 最近记录: |