60

我有一个非常简单的表格,当打开一个单元格时,它会打开一个带有一个 UITextfield 的新视图。我想要的是键盘会自动打开,而用户不必触摸 UITextfield。

这一切都在 Interface Builder 中完成,所以我不确定我是如何做到的。我想我需要在某个时候设置焦点?

谢谢

4

4 回答 4

138

要使键盘立即显示,您需要使用以下行将文本字段设置为第一响应者:

[textField becomeFirstResponder];

您可能希望将其放在viewDidAppear:方法中。

于 2010-02-16T14:18:28.080 回答
12

斯威夫特 3 和 4:

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    textField.becomeFirstResponder()
}
于 2017-10-24T11:44:40.537 回答
1
override func viewDidLoad() {
    super.viewDidLoad()
    textField.becomeFirstResponder()
}
于 2020-10-31T16:15:10.320 回答
-1

更喜欢在主线程上添加第一响应者 -

 override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    DispatchQueue.main.async {
        self.textField.becomeFirstResponder()
    }
}

当视图控制器视图被添加为子视图时,这将派上用场。

于 2019-07-28T09:14:22.823 回答