问题
我想捕获/预览应用程序收到的所有键盘输入。
如果仅捕获外部键盘的输入就足够了。
我遇到了解决方案示例,例如为UITextViewTextDidChangeNotification
和UITextFieldTextDidChangeNotification
注册通知观察员,但由于这需要TextView
或TextField
成为当前的第一响应者它没有捕捉到我们所有的需求。
这方面的一个例子是我们使用扫描来过滤整个视图是列表和导航按钮的列表。
有没有办法注册一个可以预览应用程序收到的所有键输入的观察者?
背景
我有一个iPhone应用程序,它扫描条形码以识别几个不同视图的对象。
目前,我们通过相机(使用zbar库)或MFI认证的条形码扫描仪扫描条形码。 为了支持更多设备(例如iPad),我们正在研究其他捕获条形码的方法。
我们正在研究的其中一个设备类是蓝牙扫描仪,可识别为HID键盘。这将是一个很好的补充,因为它可以用于不同的产品和制造商。
为了
答案 0 :(得分:2)
iOS 7及更高版本的另一个选项是在当前视图控制器上使用declare keyCommands方法。它可以捕获特殊的键组合。缺点是您需要明确声明您正在寻找的内容。
I answered my own question over here关于从HID模式下连接的扫描仪中获取2D条形码中的特殊字符。
答案 1 :(得分:1)
似乎使用IOHID **函数可能不会被AppStore评论者拒绝,因为IOKit是“white-list-framework”(Will Apple reject Mac OS App which uses IOKit framework?)
所以你真的可以尝试使用这个主题IOHIDEventSystemClientScheduleWithRunLoop with EXC_BAD_ACCESS中的回调函数,希望有所帮助! 我使用了这段代码,即使你的应用程序处于后台(仅设置特殊的后台模式),它也能正常工作,捕获所有系统触摸和键盘事件。