【发布时间】:2021-03-01 12:07:51
【问题描述】:
当在 macOS 应用程序中按下给定键时,我正在尝试做某事。首先,我遇到了一个问题,每次按下都会多次检测到keyDown 事件,因此会多次执行处理程序。根据建议,我添加了代码来检查事件是否是重复的,并且它当时似乎有效。但是,此解决方案似乎仅在某些时候有效,有时会多次检测到该事件。此外,我似乎无法在它起作用和不起作用的情况下找到一种模式。可能是什么问题以及我该如何解决它。
代码:
override func viewDidLoad() {
super.viewDidLoad()
NSEvent.addLocalMonitorForEvents(matching: .keyDown, handler: checkKeyDown(event:))
}
func checkKeyDown(event: NSEvent) -> NSEvent{
if event.isARepeat == false{
if event.keyCode == 36{
print("Hello World!")
}
}
return event
}
【问题讨论】:
-
viewDidLoad执行一次了吗? -
是的。它仅在应用启动时执行。