繁体   English   中英

处理外部键盘按键而不在 iOS 应用程序的屏幕上显示键盘

[英]Handling external keyboard presses without showing keyboard on screen on iOS app

我有一个私人 iOS 应用程序,我想使用通过蓝牙连接的外部键盘进行控制。 我不希望我的应用程序中有任何UITextFieldUITextView ,或者至少我不希望键盘一直显示。 有没有办法让我从物理键盘上收听这些键盘事件? 谢谢。

UIKeyCommands

要从键盘监听按键,您可以覆盖 ViewController 上的keyCommands变量(它是一个数组,因此您可以放置​​许多快捷方式):

override var keyCommands: [UIKeyCommand]? {
    return [
        UIKeyCommand(input: "Q",
                     modifierFlags: [],
                     action: #selector(self.close),
                     discoverabilityTitle: "Close app")
    ]
}

func close() {
    exit(0)
}

input是使用的键,例如CMD+Q(只放Q)。 Action 是要调用的选择器,discoverabilityTitle 是快捷方式的标题,例如“关闭应用程序”。 当用户按住 CMD 键时,它将显示在 iPad 中。

它仅适用于 CMD 键和其他特殊键:

UIKeyInputUpArrow
UIKeyInputDownArrow
UIKeyInputLeftArrow
UIKeyInputRightArrow
UIKeyInputEscape

这对我很有帮助: https : //www.avanderlee.com/swift/uikeycommand-keyboard-shortcuts/

我必须添加 canBecomeFirstResponder 覆盖才能使其工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM