微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有人找到一个好的方式使用新的iOS5键盘事件?

在开发我的iPad应用程序的最近一个功能,我意识到,新的iOS5键盘对接/分裂行为是引起巨大的问题。我使用inputAccessoryView的键盘上有一个文本字段,类似于Safari的find on page功能。我通过可滚动的UIWebView显示键盘,所以部分我的麻烦来自于缩小的UIWebview当键盘停靠,并有一个(大部分)全屏幕的webview当它被解除停靠。

我遇到的API的主要问题是,新的UIKeyboardWillChangeFrameNotification和UIKeyboardDidChangeFrameNotification通知一个从以前的API最好的一步,并有垃圾数据,使得几乎不可能了解键盘在许多情况下真正做什么。

可以识别以下任何键盘行为,而不必严格检查回来的通知的开始/结束帧?

>键盘退出
>键盘底座
>键盘分割/取消分页
>未下载的键盘显示
>未挂接的键盘隐藏
>当键盘被取消停靠时,视图旋转

我想出了一些抽象来识别停靠或屏幕外的帧,但即使这样,我的代码变得非常难以管理。如果您发现更好的方法,请回答或评论。我希望我在这里缺少的东西。谢谢。

解决方法

事情是不要过分考虑这一点。没有任何重要的改变。如果键盘进入屏幕底部的停靠位置,您将收到一个显示通知。如果它离开屏幕底部的停靠位置,你会得到一个“隐藏”通知。这正是发生在iOS 5之前。

唯一的区别是,不是离开停靠位置,因为它是移动离开屏幕,它可能会离开停靠位置,因为用户解除了它。你仍然会得到一个“隐藏”,所以你可以将你的界面移回它的基本位置。你不需要知道键盘现在已取消停靠(虽然你可以发现它不是从UIKeyboardDidChangeFrameNotification的屏幕,如果你真的想)。你不需要知道的原因是,当键盘被解除对接/拆分时,用户可以主动和移动键盘,如果它的方式,需要看到的东西。

因此,所有旧代码从iOS 5之前继续工作正常。这一切真的很聪明…

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐