我需要在iOS上从外部蓝牙键盘(Inateck条形码扫描仪)读取文本。我正在寻找一种解决方案而不使用隐藏的UITextField作为监听器?
答案 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() {}
}
希望能帮助别人。