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

SLN*_*SLN 2 uiviewcontroller first-responder swift

我想要的:

A textField和a textLabel包含在tableView.当tableView出现时,textField它将成为firstResponder并带出键盘.

我遇到的问题:

如果在textField.becomeFirstResponder()内部调用viewWillAppearviewDidLoad (textField并且textLabel根本没有显示),应用程序仅显示键盘.

我是如何修理它的:

当我将textField.becomeFirstResponder()呼叫移入时,该错误无法重现viewDidAppear

题:

我配偶在becomeFirstResponder()函数内部调用viewDidAppear函数吗?否则键盘将阻止所有其他视图

非常感谢

mat*_*att 7

想想viewDidLoad,viewWillAppearviewDidAppear 意味.

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

  • viewWillAppear 意味着视图控制器的视图将成为界面的一部分 - 但还没有.

  • viewDidAppear意味着视图控制器的视图确实成为界面的一部分.

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