我按照此处的说明使用iOS键盘调整视图。 https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html
这不适用于硬件键盘。当文本视图处于活动状态时,未显示iOS键盘,但示例代码仍返回键盘的完整高度。在我的情况下,只是输入附件视图显示在屏幕上。
如何检测此情况并仅针对输入附件视图调整视图?
答案 0 :(得分:0)
您可以将键盘的框架与当前窗口相交,如我在此处的答案https://stackoverflow.com/a/36553555/1049134。
答案 1 :(得分:0)
遇到了同样的问题。 看起来iOS键盘已完全实例化,并且在连接硬件键盘时刚刚移出视图部分。因此键盘的大小是正确的。它没有完全显示出来。
在检查通知后,我通过自己计算可见键盘高度解决了这个问题。 在我的例子中,我正在听UIKeyboardWillShowNotification,UIKeyboardWillChangeFrameNotification和UIKeyboardWillHideNotification。
-(void)keyboardMessage:(NSNotification*)notification {
NSDictionary *userInfo = notification.userInfo;
CGFloat duration = [userInfo[@"UIKeyboardAnimationDurationUserInfoKey"] floatValue];
NSValue *value = userInfo[@"UIKeyboardFrameEndUserInfoKey"];
CGRect frame = [value CGRectValue];
[UIView animateWithDuration:duration animations:^{
self.lowerContraint.constant = self.view.frame.size.height - frame.origin.y;;
[self.view needsUpdateConstraints];
[self.view layoutIfNeeded];
}];
}