为什么从导航堆栈弹出视图时键盘不显示?

时间:2011-11-15 18:22:47

标签: iphone ios first-responder

我在视图上有几个UITextField个对象。当我按下它们时,我会得到一个键盘和UIKeyboardWillShowNotification事件。当我将一个新的视图控制器推入堆栈而其中一个文本字段是第一个响应者时,键盘会动画化(如我所料)。然而,当我按下后退按钮时,他们的文本字段成为第一个响应者,但键盘没有恢复。当我再次点击同一视图中的其他文本字段时,键盘无法启动。当我重新进入视图时键盘没有启动会很好,但我不确定当我点击另一个文本字段时会出现什么情况。为什么会发生这种情况,我该如何解决?

旁注,当我在离开屏幕前辞职第一响应者时,一切正常。

2 个答案:

答案 0 :(得分:1)

我已经弄明白了,据我所知,这是Apple代码的一个错误。我在UITextField的父视图之一上有一个名为firstResponder的属性。似乎没有任何理由我不应该使用此名称,但显然Apple已经在其代码中的某处使用过它,当我使用此名称创建属性时,它会导致框架中的第一个响应者代码严重错了。解决方案是将我的财产命名为其他东西。

辞职第一响应者的唯一原因是让事情发挥作用的原因是我还将firstResponder属性设置为nil。

答案 1 :(得分:0)

我认为键盘被其他机制隐藏而不是第一响应者辞职,所以系统认为它已经显示键盘,所以不觉得需要再次显示它。

如果您可以使用可重现的实现获得一个简单的示例应用程序,这听起来像iOS中的一个错误,您应该向Apple报告。