iOS Swift keyCommands 仅读取数字

标签 ios swift uikeycommand

请考虑以下代码:

override var keyCommands: [UIKeyCommand]? {
    var commands:[UIKeyCommand] = []

    let numbers = ["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]
    for number in numbers {
        let txt = number as String
        commands.append(UIKeyCommand(input: txt, modifierFlags: [], action: #selector(keyPressed(_:))))
    }
    commands.append(UIKeyCommand(input: "\r", modifierFlags: [], action: #selector(enterPressed)))
    return commands
}

出于某种原因,只有数字被读取。这是用于模拟键盘的蓝牙条形码扫描仪。 keyCommands 无法读取字母字符还是我做错了什么?

最佳答案

多亏了 Eric Aya,我才得以完成这项工作。下面是我修改后的代码。它可能不是最优雅的解决方案,但它有效:

 override var keyCommands: [UIKeyCommand]? {
    var commands:[UIKeyCommand] = []

    let numbers = ["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]

    for number in numbers {
        let txt = number as String
        if Int(txt) == nil {
            commands.append(UIKeyCommand(input: txt, modifierFlags: [UIKeyModifierFlags.Shift], action: #selector(keyPressed(_:))))
        } else {
            commands.append(UIKeyCommand(input: txt, modifierFlags: [], action: #selector(keyPressed(_:))))
        }
    }
    commands.append(UIKeyCommand(input: "\r", modifierFlags: [], action: #selector(enterPressed)))
    return commands
}

关于iOS Swift keyCommands 仅读取数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39371266/

相关文章:

ios - Swift 管理内存

iOS Swift 中断键盘事件

ios - 使用 UIKeyCommand 时如何处理大写和小写字符

iOS:发布用于第三方测试的应用程序

ios - 如何更改 Facebook 喜欢的按钮大小和图像?

iphone - 是否有API调用可为您提供iPhone用户的“我的信息”联系人数据库记录?

swift - iOS Swift 4/来自 cloudant 连接的响应

ios - iOS模拟器中的命令键

ios - 当我点击标记时,Google map 的旧行为

ios - 我怎样才能在 Swift 5.1 (Xcode 11 Playground) 中为可选项实现泛型和非泛型函数签名的重载?