我在菜单栏应用程序中添加了一些功能。我想执行几行代码,以便在按下组合键时将某些文本复制到剪贴板(例如,cmd + alt + L)。这应该在全局范围内起作用,即,每当按下这些键时。
不确定如何执行此操作,我尝试覆盖keyDown方法,但AppDelegate.swift给出了错误,指出没有方法可以覆盖。
第一步,您需要添加一个全局监视器。
NSEvent.addGlobalMonitorForEvents(matching: .keyDown, handler: {
self.keyDown(with: $0)
})
但这也可以是您的功能。
第二步是处理这三个键
从中读取标志NSApp.currentEvent?.modifierFlags
并检查它们是否包含.option
和.command
标志
例
guard let flags = NSApp.currentEvent?.modifierFlags else {
return
}
let optionKeyIsPressed = flags.contains(.option)
最后,您可以从NSEvent
property读取keyCode
。
您可以从中读取后面的“ L”的keyCode kVK_ANSI_L
希望这是解决问题所需要的全部,祝您好运。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句