您的位置:首页 > 移动开发 > IOS开发

IOS 7中一个非常重要的是问题!

2013-12-18 18:59 267 查看
      在 iOS 7 中苹果做了许多改变,其中值得注意的一个问题就是键盘。
有许多在 iOS 6 中运行正常的 app,在iOS 7
中却出现了键盘无法消失的问题。
例如 iPad 键盘中有一个“释放键盘”按钮,点击它能够使键盘收起。这在大多数iOS 6
app 中是有效的,但在iOS 7
下运行这些程序时,你会发现点击“释放键盘”按钮键盘不会消失,甚至当用户通过导航按钮切换到其他窗口,这个键盘也不会消失!

更为严重的是,在这种情况下,所有输入控件都无法获得焦点,你不能进行任何输入!

这种情况多半是由于代码中没有正确的 resignFirstResponder 所导致的。
在iOS 6 中,输入控件有没有 resignFirstResponder 并不重要,当会话结束,键盘会自动消失。
但在iOS 7 中,isFirstResponder 的控件似乎是一直存在的,如果你不小心(或者恶意的)在控件里面构成了一个 becomeFirstResponder 的循环,则别的控件就别想获得焦点。哪怕这个控件的
superView 被释放,这个 firstResponder 也会顽固地存在,一直到你关闭应用程序。也就说视图被销毁,firstResponder 仍然不会被销毁。当你在次打开同一视图,这个控件重建,但已经是另一个实例了,原来的那个实例(firstResponder)仍然存在,并且它会一直占有 firstResponder,导致任何输入组件都无法输入。

我们可以制作这样一种恶意的 textField,当它 endEditing 的时候,让它再次 becomeFirstResponder,于是它会一直占有 firstResponder ,其它控件永远别想获得焦点……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios
相关文章推荐