我有一个IOS应用程序,如果它可以响应我在计算机上的键盘敲击,那么对于测试目的来说将非常方便。有没有办法这是可行的?
更多背景:我有一个自定义键盘,我用图像制作了它,当触摸时会打印按下的字母。但是,如果我尝试使用计算机键盘键入字母,我的自定义键盘不会打印字母,只有当我使用设备或模拟器手动按下字母时。Apple内置键盘会自动为您执行此操作,但是它不符合我对要构建的应用程序的需求。
所以我的问题是:
有没有办法从IOS设备上的计算机键盘获取输入,而无需来自默认的Apple键盘?
要回答我自己的问题,是的,有一个解决方案。
我做了什么:
我实现了 UIKeyInput 协议和它附带的三种方法:
public func insertText(text: String) { } // <-- keyboard input comes in through here
public func deleteBackward() { }
public func hasText() -> Bool { return true; }
之后,我对canBecomeFirstResponder方法进行了覆盖
public override func canBecomeFirstResponder() -> Bool {
return true;
}
我做的最后一件事就是调用成为第一响应者方法
self.becomeFirstResponder()
现在,当您在计算机上按键盘上的键时,这应该允许您从 insertText 方法接收键盘输入(甚至可能是 iPad,我没有测试过,但我假设是这样)。