从没有UITextField的外部蓝牙键盘读取

时间:2015-06-17 20:14:22

标签: ios objective-c core-bluetooth

我需要在iOS上从外部蓝牙键盘(Inateck条形码扫描仪)读取文本。我正在寻找一种解决方案而不使用隐藏的UITextField作为监听器?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

我在使用外接键盘时遇到了同样的问题(尽管可以通过BUS而不是蓝牙从BUSICOM Desktop 1D / 2D / QR Code Reader中读取文本)。

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

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() {}
}

希望能帮助别人。