有没有人find了使用新的iOS5键盘事件的好方法?

在为我的iPad应用程序开发最新function的过程中,我意识到新的iOS5键盘对接/拆分行为正在引发巨大的问题。 我使用一个inputAccessoryView的键盘上的文本字段,类似于Safari的页面functionfind。 我在可滚动的UIWebView上显示键盘,所以我的麻烦部分来自当键盘停靠时具有缩小的UIWebview,并且在脱离连接时具有(大部分)全屏webview。

我遇到的主要问题是,新的UIKeyboardWillChangeFrameNotification和UIKeyboardDidChangeFrameNotification通知与以前的API相比已经退步了,而且垃圾数据使得在许多情况下几乎不可能理解键盘真的在做什么。

是否可以识别下列任何键盘行为,而无需严格检查返回通知的开始/结束帧?

  • 键盘取消
  • 键盘docker
  • 键盘分割/未分割
  • 未锁住的键盘显示
  • 未locking的键盘隐藏
  • 当键盘脱离时,视图旋转

我已经提出了一些抽象来识别停靠或离屏的帧,但即使如此,我的代码变得非常难以pipe理。 如果您find了更好的方法来做到这一点,请回答或评论。 我希望我在这里错过了一些东西。 谢谢。

事情是不要过时的这个。 没有什么重要的变化。 如果键盘进入屏幕底部的停靠位置,您将收到“显示”通知。 如果它离开屏幕底部的停靠位置,您将收到“隐藏”通知。 这正是iOS 5之前发生的事情。

唯一的区别是,不是离开停靠的位置,因为它离开屏幕,它可能离开停靠的位置,因为用户取消了它。 你仍然会得到一个“隐藏”,所以你可以将你的界面移回到它的基本位置。 你不需要知道键盘现在是否被取消locking(尽pipe如果你真的想要的话,你可以发现它不是UIKeyboardDidChangeFrameNotification中的离屏)。 你不需要知道的原因是,当键盘脱开/分离时,如果用户需要看到的东西,用户可以主动地移动键盘。

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