【问题标题】:UITextField focus before navigation view push?导航视图推送之前的UITextField焦点?
【发布时间】:2010-09-30 18:08:01
【问题描述】:

我在UITableViewCell 中设置了UITextField,用于在您编辑字段时模仿Apple 自己的联系人应用程序中的控件。这一切大部分工作正常,除了一点 UI 错误。

UITableView 是从 XIB 创建和加载的 UIViewController 的一部分,但文本字段是在 tableView:cellForRowAtIndexPath: 中以编程方式创建的(并成为第一响应者),因此可以将其添加到单元格中。

这会导致轻微的键盘延迟,其中视图控制器被推入堆栈,键盘很快就会出现。

但是,通讯录应用程序将所有内容合二为一。

如何纠正这种滞后?我尝试将文本字段创建和第一响应者移动到viewDidLoad,但这没有帮助。我什至尝试创建一个layoutSubviews 并从视图控制器外部调用它,然后再将它推入堆栈。

不幸的是,在它成为单元格的一部分之前,似乎文本字段实际上成为第一响应者——在视图被推送之后。

【问题讨论】:

  • 您能详细解释一下视图控制器何时被压入堆栈吗?在我对联系人应用程序的简要检查中,我没有看到键盘与视图控制器推送同时显示。当您按下“编辑”时,所有单元格都会动画到编辑模式,点击一个单元格会弹出键盘。推送视图控制器在哪里?

标签: ios cocoa-touch


【解决方案1】:

您必须让UITextField 成为viewWillAppear 中的第一响应者。 我在这里创建了一个示例项目:

https://github.com/lukaswuerzburger/pushed-keyboard

【讨论】:

  • 这是问题的创建时间戳与其接受的答案之间可证明的最大差异。在整个网站上。太棒了! :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-02
  • 1970-01-01
  • 1970-01-01
  • 2010-11-04
  • 2011-03-18
  • 2012-09-24
相关资源
最近更新 更多