以编程方式按键盘按钮

时间:2016-05-28 18:03:22

标签: ios swift

我想知道是否有办法打开iOs键盘并以编程方式按下按钮而不与键盘本身交互。

4 个答案:

答案 0 :(得分:2)

是的,有办法。实际上有几种方法,但所有方法都没有记录,你绝对不应该在生产中使用它们。

生成点按表示生成UIEvent(实际上是其中几个)并将其传递给UIApplication.sendEvent(_:)

不幸的是,UIEvent内部结构没有记录,但有些人已经检查了它,你可以使用google工具来合成事件(例如https://github.com/n00neimp0rtant/ControlFreak)。但请注意,UIEventUITouch的内部结构可能会在iOS版本之间发生变化(请参阅iOS 9 UIEvent

您还可以使用内部UIAutomation API(例如参见these generated headers)来生成点击(这是以前版本中使用的UI测试),但同样,此API未公开记录,并且已加载到仅当应用程序连接到Xcode时才应用该应用程序。我不确定这个私有框架在iOS 9上是怎么样的。

答案 1 :(得分:1)

不,没有。您可以通过响应器链向您的应用程序发送事件,但出于安全原因,只能通过触摸访问键盘。

答案 2 :(得分:0)

我不明白为什么你需要。如果你有,让我们说一个UITextField,然后说,

textField.text += "a"

这可以用于任何事情。您无需点击键盘按钮

答案 3 :(得分:0)

override func viewDidLoad() {
    super.viewDidLoad()


    textInput.becomeFirstResponder()

}

override func viewDidAppear(animated: Bool) {

    textInput.text = textInput.text ?? "" + ""

}