我无法可靠地获得键盘的实际高度.我正在添加一个自定义工具栏,它意味着直接放在键盘上方.为了实现布局约束,我在屏幕底部和工具栏底部之间添加了一个静态空间约束.当键盘显示时,我将此约束修改为键盘的高度,这在iOS 8中有很大差异.
为了调整spacer的大小,我目前使用以下方法被触发 UIKeyboardDidShowNotification
-(void)keyboardDidShow:(NSNotification*)notification
{
   CGFloat height = [[notification.userInfo objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].height;
   self.shimConstraint.constant = height;
   [self.view layoutIfNeeded];
}
这有时会正确调整约束,但通常返回的键盘高度完全不正确.一旦显示键盘,可靠地获得键盘高度的最佳方法是什么?
编辑:应用程序允许用户在许多不同的输入字段之间切换.其中一些禁用了自动更正,因此自动更正栏可能会隐藏,也可能不会隐藏,切换字段时会返回不正确的高度.
Kri*_*lci 35
你这样做的方式是正确的,但你可能想要使用UIKeyboardFrameEndUserInfoKey而不是UIKeyboardFrameBeginUserInfoKey.最终用户键是在完成动画和屏幕上时键盘的框架,因此您知道它将是该帧,而开始键可能并不总是与显示时键盘框架的内容相匹配.
可能还需要额外考虑设备的方向,我没有考虑过,但对于肖像,它应该工作.
执行此操作的正确方法是使用UITextField的inputAccesorryView属性.
无论键盘大小如何,inputAccessoryView都会自动添加到键盘上方.
正如文件所述:
此属性的默认值为nil.将视图分配给此属性会导致该视图显示在标准系统键盘上方(如果提供了一个,则显示在自定义输入视图上方),当文本字段成为第一个响应者时.例如,您可以使用此属性将自定义工具栏附加到键盘
| 归档时间: | 
 | 
| 查看次数: | 28965 次 | 
| 最近记录: |