键盘没有被解雇

时间:2011-01-17 12:48:59

标签: iphone objective-c uikit keyboard uitextview

我正在开发一个具有类似SMS.app的UI的消息传递应用程序。对话屏幕底部有文字输入字段,用键盘向上移动。点击会话区域通过在我们使用的UITextView上调用resignFirstResponder方法来解除键盘。

这通常可以正常工作,但用户会报告一个我无法重现和修复的奇怪错误。人们说有时屏幕键盘在点击会话区域时不会消失,尽管文本输入字段会丢失输入焦点。一旦视图进入异常状态,用户就可以使用键盘输入,但输入的文本在任何地方都不可见。此错误发生在一个对话视图中,从那时起,其他视图中没有任何文本输入字段无法按预期工作。阻止这种奇怪行为的唯一方法是从多任务处理栏中删除应用程序。

更奇怪的是,在UINavigationController中的视图控制器之间导航时键盘保持可见。我注意到两件事:

  • 如果使用活动文本字段和可见键盘点击会话视图控制器中的“< Back”,则键盘会在视图更改时消失。
  • 如果使用非活动文本字段和可见键盘点击会话视图控制器中的“< Back”,则键盘在视图更改时不会消失。

其他遇到同样问题的人。关于什么可能导致这个bug的任何想法?

2 个答案:

答案 0 :(得分:0)

如果文本字段有委托,并且委托为textFieldShouldEndEditing返回NO,则resignFirstResponder将失败。我不知道你看到的是这个问题,还有待检查的事情。

答案 1 :(得分:0)

将textfield / textview委托设置为fileowner。