3

问题

我想捕捉/预览我们的应用程序接收到的所有键盘输入。

如果只捕获来自外部键盘的输入就足够了。

我已经找到了解决方案示例,例如为 and 注册通知观察者UITextViewTextDidChangeNotificationUITextFieldTextDidChangeNotification但是由于这需要TextVieworTextField成为当前的第一响应者,因此它不能满足我们的所有需求。

一个例子是我们使用扫描来过滤一个列表,其中整个视图是列表和导航按钮。

有没有办法注册一个可以预览应用程序收到的所有关键输入的观察者?

背景:

我有一个 iPhone 应用程序,它可以扫描条形码以识别多个不同视图中的对象。

目前,我们通过相机(使用 zbar 库)或 MFI 认证的条码扫描仪扫描条码。为了支持更多设备(例如 iPad),我们正在研究获取条形码的其他方法。

我们正在研究的设备类别之一是识别为 HID 键盘的蓝牙扫描仪。这将是一个很好的补充,因为它可用于不同的产品和制造商。

为了

4

2 回答 2

2

iOS 7 及更高版本的另一个选项是在当前视图控制器上使用声明 keyCommands 方法。它可以捕获特殊的组合键。缺点是您需要明确声明您要查找的内容。

我在这里回答了关于从以 HID 模式连接的扫描仪的二维条码中获取特殊字符的问题。

于 2014-08-06T20:26:08.707 回答
1

似乎 IOHID** 功能的使用可能不会被 AppStore 审阅者拒绝,因为 IOKit 是“白名单框架”(Apple 会拒绝使用 IOKit 框架的 Mac OS 应用程序吗?

所以你真的可以尝试使用这个主题IOHIDEventSystemClientScheduleWithRunLoop 的回调函数和 EXC_BAD_ACCESS,希望对你有帮助!我使用了这段代码,即使您的应用程序处于后台(只需设置特殊的后台模式),它也可以捕获所有系统触摸和键盘事件。

于 2013-10-11T11:48:07.897 回答