在 viewDidLoad 中使用 BecomeFirstResponder 是否正确

is it right to use BecomeFirstResponder in viewDidLoad

我想在打开 viewcontroller 时为文本字段调出键盘。

所以我在 textfield 上调用 becomefirstresponder,它总是有效。

但我想知道

  1. 调用 becomefirstresponder 的地方是否正确?或者我是否必须在 viewcontroller
  2. 中调用其他生命周期事件
  3. 如果 view did load 是调用的正确位置.. 我是否必须在主线程中手动调用或不需要,因为默认情况下需要 view didload ?

你所做的并没有绝对的错误。

从逻辑上讲,有人可能会争辩说 viewDidLoad 太早了,因为您的视图(带有您的文本字段)不在界面中;也许 viewDidAppear 会是一个更合乎逻辑的地方。但是,在那种情况下,您必须记住 viewDidAppear 可以在视图控制器的生命周期内多次调用,因此您需要区分这是否是第一次(不难)。