好的,所以我有一个工具栏,我正在使用它作为附件,所以它只在键盘出现时出现。这样做我有点工作;
@IBOutlet var toolBar: UIToolbar!
@IBOutlet weak var playerInput: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
playerInput.delegate = self
playerInput.inputAccessoryView = toolBar
}
为了测试它的工作原理,我只是在某个视图中创建一个临时textField,并将其连接为playerInput
。但这不是我的设计最终要求的。我需要将textField设置在用作附件的工具栏上,并在我的导航栏上有一个按钮,用于选择textField,就像用户触摸它一样,它会调出键盘,工具栏,并具有焦点。
我的按钮功能@IBAction func addButton(){}
是否可以像用户触摸textField一样,所以它会弹出键盘并显示工具栏?
编辑:当我将playerInput.becomeFirstResponder()
添加到我的按钮@IBAction
功能时,没有任何反应。在我的iPhone 6s或iPhone模拟器上运行它,按下按钮什么都不做。添加控制台打印以确保按钮正常工作,工作正常,因此我知道按钮正在工作。
编辑2:好的,所以我有一个非常可怕的解决方法来让某事发生。我在主视图中添加了第二个textField并将其隐藏起来。然后将我的工具栏附件视图设置为新的隐藏textField。因此,当按下按钮时,它会将隐藏的textField作为第一响应者调用,它会附加具有真实textField的工具栏。然后用户可以选择真正的textField并正确保存其条目。这一切都在努力。唯一的问题是如果用户通过向下滑动来解除键盘,那么beyboard将重新出现一次,迫使他们再次将其关闭。
答案 0 :(得分:1)
是的,您可以使用playerInput.becomeFirstResponder()
实现此目的。