在 iOS 应用的屏幕上不显示键盘的情况下处理外部键盘按下
Handling external keyboard presses without showing keyboard on screen on iOS app
我有一个私人 iOS 应用程序,我想使用通过蓝牙连接的外部键盘来控制它。我不希望我的应用程序中有任何 UITextField
或 UITextView
,或者至少我不希望键盘一直显示。有没有办法让我从物理键盘上收听这些键盘事件?谢谢。
UIKeyCommands
要从键盘监听按键,您可以覆盖 ViewController 上的 keyCommands
变量(它是一个数组,因此您可以放置许多快捷方式):
override var keyCommands: [UIKeyCommand]? {
return [
UIKeyCommand(input: "Q",
modifierFlags: [],
action: #selector(self.close),
discoverabilityTitle: "Close app")
]
}
func close() {
exit(0)
}
输入是使用键,例如CMD+Q(只放Q)。 Action 是要调用的选择器,discoverabilityTitle 是快捷方式的标题,例如 "Close app"。当用户按住CMD键时,它会显示在iPad中。
它只适用于 CMD 键和其他特殊键:
UIKeyInputUpArrow
UIKeyInputDownArrow
UIKeyInputLeftArrow
UIKeyInputRightArrow
UIKeyInputEscape
这对我很有帮助:https://www.avanderlee.com/swift/uikeycommand-keyboard-shortcuts/
我必须添加 canBecomeFirstResponder 覆盖才能使其正常工作。
我有一个私人 iOS 应用程序,我想使用通过蓝牙连接的外部键盘来控制它。我不希望我的应用程序中有任何 UITextField
或 UITextView
,或者至少我不希望键盘一直显示。有没有办法让我从物理键盘上收听这些键盘事件?谢谢。
UIKeyCommands
要从键盘监听按键,您可以覆盖 ViewController 上的 keyCommands
变量(它是一个数组,因此您可以放置许多快捷方式):
override var keyCommands: [UIKeyCommand]? {
return [
UIKeyCommand(input: "Q",
modifierFlags: [],
action: #selector(self.close),
discoverabilityTitle: "Close app")
]
}
func close() {
exit(0)
}
输入是使用键,例如CMD+Q(只放Q)。 Action 是要调用的选择器,discoverabilityTitle 是快捷方式的标题,例如 "Close app"。当用户按住CMD键时,它会显示在iPad中。
它只适用于 CMD 键和其他特殊键:
UIKeyInputUpArrow
UIKeyInputDownArrow
UIKeyInputLeftArrow
UIKeyInputRightArrow
UIKeyInputEscape
这对我很有帮助:https://www.avanderlee.com/swift/uikeycommand-keyboard-shortcuts/
我必须添加 canBecomeFirstResponder 覆盖才能使其正常工作。