UIKeyboardFrameEndUserInfoKey返回错误的原点 - iOS7

xar*_*rly 1 keyboard textfield ios ios7

当文本字段被键盘隐藏时,我在尝试从视图控制器移动根视图(使用scrollView)时遇到一些问题.此文本字段不在根目录中.

我的应用程序在iOS7中运行并且只有纵向模式,如果位置是底部主页按钮,我从UIKeyboardFrameEndUserInfoKey获取正确的值:

(CGRect)$ 2 = origin =(x = 0,y = 760)size =(width = 768,height = 264)

但如果该位置是Top home按钮,则从UIKeyboardFrameEndUserInfoKey获取错误的原点:

(CGRect)$ 3 = origin =(x = 0,y = 0)size =(width = 768,height = 264)

你有什么主意吗?

谢谢!

use*_*913 8

我也遇到了这个问题.虽然我觉得我以前从来没有处理过这个问题,但我不能肯定地说,因为我没有太多处理这些东西的经验.虽然,它在iPhone上运行良好,所以我不确定这里发生了什么.

无论如何,苹果文档看起来像这样:

包含CGRect的NSValue对象的键,用于标识屏幕坐标中键盘的结束帧.这些坐标不考虑由于界面方向改变而应用于窗口内容的任何旋转因子.因此,您可能需要在使用之前将矩形转换为窗口坐标(使用convertRect:fromWindow:方法)或查看坐标(使用convertRect:fromView:方法).

所以,我只是做了:

keyboardRect = [self.view convertRect:keyboardRect fromView:nil];
Run Code Online (Sandbox Code Playgroud)

这会将rect转换为窗口的坐标系.