在按钮上激活TextField按

时间:2016-12-14 20:39:22

标签: ios swift

好的,所以我有一个工具栏,我正在使用它作为附件,所以它只在键盘出现时出现。这样做我有点工作;

@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将重新出现一次,迫使他们再次将其关闭。

1 个答案:

答案 0 :(得分:1)

是的,您可以使用playerInput.becomeFirstResponder()实现此目的。