在ViewDidAppear或ViewWillAppear中调用becomeFirstResponder()的位置?

时间:2017-07-24 17:13:31

标签: swift uiviewcontroller first-responder

我想要什么

textFiled中包含textLabeltableView。当 tableView 出现时,textFiled将成为firstResponder并带出键盘。

我遇到的问题:

如果在textField.becomeFirstResponder()viewWillApper内调用viewDidLoad,则应用仅显示键盘(textFiledtextLabel根本未显示)。

我是如何解决的:

textField.becomeFirstResponder()电话移至viewDidApper

时,错误无法重现

问题:

我是否配偶在becomeFirstResponder()函数中调用viewDidApper函数?否则键盘将阻止所有其他视图

非常感谢

1 个答案:

答案 0 :(得分:6)

考虑viewDidLoadviewWillAppearviewDidAppear 的含义

  • viewDidLoad表示视图控制器具有视图 - 但该视图还不是界面的一部分。

  • viewWillAppear表示视图控制器的视图将成为界面的一部分 - 但还没有。

  • viewDidAppear表示视图控制器的视图 成为界面的一部分。

在文本字段召唤键盘之前,您需要将视图作为界面的一部分。只有这样,表格视图才会显示显示和配置。换句话说,此时界面已经确定为其实际形式,我们已准备好将键盘正确放置在其上方。