Ios 从外部蓝牙键盘读取,不带UITextField

Ios 从外部蓝牙键盘读取,不带UITextField,ios,objective-c,core-bluetooth,Ios,Objective C,Core Bluetooth,我需要从iOS上的外部蓝牙键盘(Inateck条形码扫描仪)读取文本。我正在搜索一个解决方案,但没有像侦听器那样使用隐藏的UITextField?不幸的是,在iOS上没有拦截击键的低级API。如果您的条形码扫描仪模拟键盘(HID配置文件),则您唯一的选择是将其配对为键盘并直接输入UITextField。正如您所指出的,此文本字段可以隐藏。不幸的是,在iOS上没有拦截击键的低级API。如果您的条形码扫描仪模拟键盘(HID配置文件),则您唯一的选择是将其配对为键盘并直接输入UITextField。正

我需要从iOS上的外部蓝牙键盘(Inateck条形码扫描仪)读取文本。我正在搜索一个解决方案,但没有像侦听器那样使用隐藏的UITextField?

不幸的是,在iOS上没有拦截击键的低级API。如果您的条形码扫描仪模拟键盘(HID配置文件),则您唯一的选择是将其配对为键盘并直接输入UITextField。正如您所指出的,此文本字段可以隐藏。

不幸的是,在iOS上没有拦截击键的低级API。如果您的条形码扫描仪模拟键盘(HID配置文件),则您唯一的选择是将其配对为键盘并直接输入UITextField。正如您所指出的,此文本字段可以隐藏。

我的外部键盘也有同样的问题(尽管通过电缆而不是蓝牙从BUSICOM Desktop 1D/2D/QR代码阅读器读取文本)

我的解决方案是为
UIViewController
实现
UIKeyInput

Swift 5.1

// MARK: - UIKeyInput
let keyboardHiderView = UIView()
extension QRScannerViewController: UIKeyInput {
    override var canBecomeFirstResponder: Bool { true }
    var hasText: Bool { false }

    override var inputView: UIView? {
        return keyboardHiderView
    }

    func insertText(_ text: String) {
        // Character by character input in here
    }

    func deleteBackward() {}
}

希望能帮助别人。

我的外置键盘也有同样的问题(尽管通过电缆而不是蓝牙从BUSICOM桌面1D/2D/QR码阅读器读取文本)

我的解决方案是为
UIViewController
实现
UIKeyInput

Swift 5.1

// MARK: - UIKeyInput
let keyboardHiderView = UIView()
extension QRScannerViewController: UIKeyInput {
    override var canBecomeFirstResponder: Bool { true }
    var hasText: Bool { false }

    override var inputView: UIView? {
        return keyboardHiderView
    }

    func insertText(_ text: String) {
        // Character by character input in here
    }

    func deleteBackward() {}
}

希望能帮助他人。

条形码扫描仪是什么类型(我是说,哪个品牌)我需要类似的输入(近距离读卡器),也不想使用输入字段,因为它会干扰屏幕键盘上的其他输入。在我的情况下,我最终不得不建立自己的BLE设备。对于条形码扫描,可能存在使用传统SPP而不是键盘/HID兼容MFi的设备profile@KarloA.L奥佩斯·伊纳塔克Bluetooth@Paulw11是的,这可能是一个解决方案,但这个应用程序将安装在20部iPhone上,所以我需要构建20部BLE设备。而且我不能更换扫描仪,这是马拉松比赛,协会已经有扫描仪了。无论如何,谢谢如果它是键盘模拟设备,那么UITextField是您选择条形码扫描仪类型(我是说,哪个品牌)的唯一选项。我需要一个类似的输入(接近读卡器),也不想使用输入字段,因为它会干扰屏幕键盘的其他输入。在我的情况下,我最终不得不建立自己的BLE设备。对于条形码扫描,可能存在使用传统SPP而不是键盘/HID兼容MFi的设备profile@KarloA.L奥佩斯·伊纳塔克Bluetooth@Paulw11是的,这可能是一个解决方案,但这个应用程序将安装在20部iPhone上,所以我需要构建20部BLE设备。而且我不能更换扫描仪,这是马拉松比赛,协会已经有扫描仪了。无论如何,谢谢如果它是一个键盘模拟设备,那么UITextField是你唯一的选择。谢谢你的回答!谢谢你的回答!这救了我一天。实际上,我不知道有多少:)。真正欣赏最简单的方法。虽然我必须在Flitter上实现它,这需要一些工作,但其本质是这件可爱的作品。@malik_cesur我想这至少可以部分弥补未在Flitter中为iOS实现的原始键盘事件,对吗?如果是这样的话,我实际上需要在Flutter中实现类似的东西。你能分享你的代码吗?@hincar当然,事实上,单凭这一点还不足以捕获事件。对于13.4以上的iOS,您还需要收听新闻事件。我将分享我实现的VC的全部代码。我还用我创建的VC更改了flatterVC,并扩展了原来的VC。如果你需要进一步的帮助,请在这里提及我。一旦我有足够的时间,我将为
RawKeyboard
组件申请PR,以更好地支持引擎级别的iOS。要点是:这救了我一天。实际上,我不知道有多少:)。真正欣赏最简单的方法。虽然我必须在Flitter上实现它,这需要一些工作,但其本质是这件可爱的作品。@malik_cesur我想这至少可以部分弥补未在Flitter中为iOS实现的原始键盘事件,对吗?如果是这样的话,我实际上需要在Flutter中实现类似的东西。你能分享你的代码吗?@hincar当然,事实上,单凭这一点还不足以捕获事件。对于13.4以上的iOS,您还需要收听新闻事件。我将分享我实现的VC的全部代码。我还用我创建的VC更改了flatterVC,并扩展了原来的VC。如果你需要进一步的帮助,请在这里提及我。一旦我有足够的时间,我将为
RawKeyboard
组件申请PR,以更好地支持引擎级别的iOS。要点如下: