UIKeyboardFrameBeginUserInfoKey&UIKeyboardFrameEndUserInfoKey

问题描述:

在管理键盘documentationUIKeyboardFrameBeginUserInfoKey&UIKeyboardFrameEndUserInfoKey

UIKeyboardFrameBeginUserInfoKey的 键用于容纳 的CGRect标识开始帧的键盘在屏幕坐标的 一个NSValue对象。 这些坐标没有考虑到 帐户因为界面方向更改导致 对窗口内容应用 的任何旋转因子。 因此,可能需要向 矩形转换为窗口坐标(使用 的convertRect:fromWindow:方法),使用它 之前或 查看坐标(方法使用 convertRect:fromView)。

UIKeyboardFrameEndUserInfoKey关键 用于容纳 的CGRect标识结束帧键盘在屏幕坐标的 一个NSValue对象。 这些坐标没有考虑到 帐户因为界面方向更改导致 对窗口内容应用 的任何旋转因子。 因此,可能需要向 矩形转换为窗口坐标(使用 的convertRect:fromWindow:方法),使用它 之前或 查看坐标(方法使用 convertRect:fromView)。

什么意思是start frameend frame?他们有什么区别?

+0

LOL - 目前已经在苹果在线文档,这两个键具有相同的文档注释,只有这个词开始/结尾不同,Doh! – Adam 2014-01-02 13:32:20

开始帧是键盘处于动画开始位置的位置:如果键盘正在显示,则为屏幕外;如果键盘正在隐藏,则显示屏幕。结束帧是键盘将在动画结束处的位置:反之亦然。您可以使用它们之间的区别来编写一个响应隐藏和显示键盘的方法。

当动画视图更改时,一定还要使用UIKeyboardAnimationCurveUserInfoKeyUIKeyboardAnimationDurationUserInfoKey:这样,您的动画和操作系统的动画就会同步。

另一个提示:链接到状态的文档,“包含在userInfo字典的UIKeyboardFrameBeginUserInfoKey和UIKeyboardFrameEndUserInfoKey属性中的矩形只能用于它包含的大小信息。不要使用矩形的原点(它是总是{0.0,0.0})在矩形相交运算中“。至少在OS 3.2上的iPad上,这是不正确的。这两个矩阵的大小相同,而屏幕坐标中的原点在两者之间不同。

你会发现这个问题有所帮助:即使有IOS7,苹果未能记录此UIKeyboardBoundsUserInfoKey is deprecated, what to use instead?

+5

感谢关于UIKeyboardAnimationCurveUserInfoKey和UIKeyboardAnimationDurationUserInfoKey的精彩提示! – ohho 2010-07-27 01:15:53

+0

不客气。如果你恰好在桌面视图中使用textviews,请让我知道你提出了什么。 – 2010-07-28 18:26:22