在哪里调用 becomeFirstResponder(),在 ViewDidAppear 或 ViewWillAppear?
Where to call becomeFirstResponder(), at ViewDidAppear or ViewWillAppear?
我想要什么:
一个textField
和一个textLabel
被包含在tableView
中。当 tableView 存在时,textField
将成为 firstResponder
并带出键盘。
我遇到的问题:
如果在 viewWillAppear
或 viewDidLoad
中调用 textField.becomeFirstResponder()
,应用程序仅显示键盘(textField
和 textLabel
根本不显示).
我是如何修复的:
当我将 textField.becomeFirstResponder()
调用移至 viewDidAppear
时,错误无法重现
问题:
我可以在 viewDidAppear
函数中调用 becomeFirstResponder()
函数吗?否则键盘会挡住所有其他视图
非常感谢
想想 viewDidLoad
、viewWillAppear
和 viewDidAppear
的意思。
viewDidLoad
表示视图控制器 有一个视图 — 但该视图还不是界面的一部分。
viewWillAppear
意味着视图控制器的视图将成为界面的一部分——但还没有。
viewDidAppear
表示视图控制器的视图did成为界面的一部分。
您需要让视图成为界面的一部分,然后您的文本字段才能调用键盘。只有这样 table 视图才会真正 显示和配置 。换句话说,此时界面已经固定为实际形式,我们准备好将键盘正确放置在它上面。
我想要什么:
一个textField
和一个textLabel
被包含在tableView
中。当 tableView 存在时,textField
将成为 firstResponder
并带出键盘。
我遇到的问题:
如果在 viewWillAppear
或 viewDidLoad
中调用 textField.becomeFirstResponder()
,应用程序仅显示键盘(textField
和 textLabel
根本不显示).
我是如何修复的:
当我将 textField.becomeFirstResponder()
调用移至 viewDidAppear
问题:
我可以在 viewDidAppear
函数中调用 becomeFirstResponder()
函数吗?否则键盘会挡住所有其他视图
非常感谢
想想 viewDidLoad
、viewWillAppear
和 viewDidAppear
的意思。
viewDidLoad
表示视图控制器 有一个视图 — 但该视图还不是界面的一部分。viewWillAppear
意味着视图控制器的视图将成为界面的一部分——但还没有。viewDidAppear
表示视图控制器的视图did成为界面的一部分。
您需要让视图成为界面的一部分,然后您的文本字段才能调用键盘。只有这样 table 视图才会真正 显示和配置 。换句话说,此时界面已经固定为实际形式,我们准备好将键盘正确放置在它上面。