7

我有一个故事板,其中包括视图之间的导航。来回,也有可能一直跳到主屏幕。

基本上,它是这样工作的:

  • 视图 1 显示了一个简单的菜单。
  • 视图 2 显示输入字段并自动显示键盘。
  • 视图 3 显示了一个结果表。在此视图中,您可以后退一步(视图 2)或返回主屏幕(视图 1)。

当用户从视图 1 移动到视图 2 时,键盘和一切第一次完美运行。但是,当从视图 3 移回视图 2,或从视图 3 重新开始时,键盘不显示。

在代码中,我在 viewDidAppear 方法中变成了FirstResponder。此外,它会在加载视图 3 时 resignFirstResponder。另一个有趣的事实是,当第二次调用 becomeFirstResponder 时,它确实返回 NO(而第一次返回 YES)。此外,当返回此视图时,无法选择文本字段,即使它们是 userInteractionEnabled。

我真的被困在这里,所以非常感谢任何帮助。我已经看到了几个与此类似的问题,但没有找到解决方案:

4

1 回答 1

8

我能够在我的代码中找到问题。自己回答这个问题,因为它也可能对其他人有帮助。

我的问题是我并没有真正得到正确的事件顺序。我有一个按钮可以移动到下一个文本字段,如果一切都完成了,它将移动到下一个屏幕。这导致在切换到新屏幕时调用 becomeFirstResponder 方法而不释放 (resignFirstResponder)。

我想我可以给出的主要建议(至少最终对我有用)是通过所有 becomeFirstResponder 并确保在移动到下一个屏幕之前释放它。

于 2012-10-18T05:24:38.540 回答