按下组合键时执行功能

亚当·哈桑(Adam Hasan)

我在菜单栏应用程序中添加了一些功能。我想执行几行代码,以便在按下组合键时将某些文本复制到剪贴板(例如,cmd + alt + L)。这应该在全局范围内起作用,即,每当按下这些键时。

不确定如何执行此操作,我尝试覆盖keyDown方法,但AppDelegate.swift给出了错误,指出没有方法可以覆盖。

拉杰蒙德·扎维希拉克(RajmundZawiślak)

第一步,您需要添加一个全局监视器。

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)

最后,您可以从NSEventproperty读取keyCode

您可以从中读取后面的“ L”的keyCode kVK_ANSI_L

希望这是解决问题所需要的全部,祝您好运。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章