在编辑字段时,我在UITextField中设置了一个UITableViewCell,用于模仿苹果自己的“联系人”应用程序中的控件。除了一个小小的UI错误外,所有这些基本上都可以正常工作。
UITableView是从XIB创建和加载的UIViewController的一部分,但是正在tableView:cellForRowAtIndexPath:中以编程方式创建文本字段(并成为第一响应者),以便可以将其添加到单元格中。

这会导致轻微的键盘滞后,将 View Controller 推到堆栈上,之后很快就会出现键盘。

但是,“联系人”应用程序将其全部推送为一个。

我该如何纠正这种滞后?我尝试将文本字段的创建和第一个响应者移至viewDidLoad,但这没有帮助。我什至尝试创建layoutSubviews并从 View Controller 外部调用它,然后再将其推送到堆栈中。

不幸的是,直到文本字段成为单元格的一部分时,才看起来好像该文本字段实际上成为了第一个响应者-早于 View 被插入之后。

最佳答案

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

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

关于ios - UITextField焦点在导航 View 推送之前?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/432485/

10-14 21:59