【发布时间】:2011-01-17 10:11:45
【问题描述】:
我有一个非常简单的表格,当打开一个单元格时,它会打开一个带有一个 UITextfield 的新视图。我想要的是键盘会自动打开,而用户不必触摸 UITextfield。
这一切都在 Interface Builder 中完成,所以我不确定我是如何做到的。我想我需要在某个时候设置焦点?
谢谢
【问题讨论】:
标签: iphone objective-c interface uitextfield builder
我有一个非常简单的表格,当打开一个单元格时,它会打开一个带有一个 UITextfield 的新视图。我想要的是键盘会自动打开,而用户不必触摸 UITextfield。
这一切都在 Interface Builder 中完成,所以我不确定我是如何做到的。我想我需要在某个时候设置焦点?
谢谢
【问题讨论】:
标签: iphone objective-c interface uitextfield builder
要使键盘立即显示,您需要使用以下行将文本字段设置为第一响应者:
[textField becomeFirstResponder];
您可能希望将其放在viewDidAppear: 方法中。
【讨论】:
UITextViewDelegatedelegate,然后在IB中连接到delegate?
override func viewDidAppear(_ animated: Bool) { textField.becomeFirstResponder() }
斯威夫特 3 和 4:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
textField.becomeFirstResponder()
}
【讨论】:
super.viewDidAppear(animated)
override func viewDidLoad() {
super.viewDidLoad()
textField.becomeFirstResponder()
}
【讨论】:
最好在主线程上添加第一响应者-
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
DispatchQueue.main.async {
self.textField.becomeFirstResponder()
}
}
当视图控制器视图被添加为子视图时,这将派上用场。
【讨论】: