我想知道是否有办法打开iOs键盘并以编程方式按下按钮而不与键盘本身交互。
答案 0 :(得分:2)
是的,有办法。实际上有几种方法,但所有方法都没有记录,你绝对不应该在生产中使用它们。
生成点按表示生成UIEvent
(实际上是其中几个)并将其传递给UIApplication.sendEvent(_:)
。
不幸的是,UIEvent
内部结构没有记录,但有些人已经检查了它,你可以使用google工具来合成事件(例如https://github.com/n00neimp0rtant/ControlFreak)。但请注意,UIEvent
和UITouch
的内部结构可能会在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 ?? "" + ""
}