gpt4 book ai didi

swift - 如何在 Swift 3 Cocoa 应用程序中检测命令 + 箭头键

转载 作者:行者123 更新时间:2023-12-03 16:53:44 28 4
gpt4 key购买 nike

override func keyDown(with event: NSEvent) {
switch event.modifierFlags.intersection(.deviceIndependentFlagsMask) {
case [.command] where event.characters == "9":
print("command-9")
case [.command] where event.keyCode == 123:
print("command-left arrow") // problem: this never executed
default:
break
}
}

以上是我尝试过的。 command-9 的作用就像一个魅力。但是命令-箭头不起作用。

看起来,如果你按命令-箭头,修饰符标志不是命令。我在互联网上搜索但无法使其工作。

最佳答案

您可以将代码分为两步,检查是否先单击了 command,然后检查 keyCodeswitch:

if event.modifierFlags.intersection(.deviceIndependentFlagsMask).contains(.command) {
switch event.keyCode {
case 123:
print("command-left arrow")
case 124:
print("command-right arrow")
case 125:
print("command-down arrow")
case 126:
print("command-up arrow")
default:
break
}
}

当单击命令 - 向左箭头时,将会打印出来。

更新
要仅限于命令+箭头键,请使用此if语句:

if event.modifierFlags.intersection(.deviceIndependentFlagsMask).contains(.command) &&
!event.modifierFlags.intersection(.deviceIndependentFlagsMask).contains(.option) &&
!event.modifierFlags.intersection(.deviceIndependentFlagsMask).contains(.control) &&
!event.modifierFlags.intersection(.deviceIndependentFlagsMask).contains(.function) &&
!event.modifierFlags.intersection(.deviceIndependentFlagsMask).contains(.shift) &&
!event.modifierFlags.intersection(.deviceIndependentFlagsMask).contains(.capsLock) {

}

关于swift - 如何在 Swift 3 Cocoa 应用程序中检测命令 + 箭头键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44340447/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com