我正在使用事件监视器在swift中检测按键事件。然而,事件监视器似乎没有检测到命令键或任何其他修改键(shift、tab、Opt...)按下。有没有不同的方法来检测修改键按下?请注意,我不是在寻找一种方法来检测组合键(例如: cmd+r),这可以通过使用event.modifierFlags来完成,而是一种知道何时单独按下命令键的方法。
override func viewDidLoad() {
super.viewDidLoad()
NSEvent.addLocalMonitorForEvents(matching: .keyDown, handler: commandKey(evt:))
}
func commandKey(evt: NSEvent) -> NSEvent{
if evt.keyCode == 55 { //key code for command is 55
print("commanded")
}
return evt
}发布于 2021-03-04 01:48:15
找到了解决方案。似乎.flagsChanged事件用于检测修改键按下。
override func viewDidLoad() {
super.viewDidLoad()
NSEvent.addLocalMonitorForEvents(matching: .flagsChanged, handler: commandKey(evt:))
}
func commandKey(evt: NSEvent) -> NSEvent{
if evt.modifierFlags.contains(.command){
print("commanded")
}
return evt
}https://stackoverflow.com/questions/66462220
复制相似问题