如何处理keydown事件? | Swift3 OSX

时间:2016-10-09 16:20:08

标签: macos keyboard event-handling swift3 macos-sierra

后台应用程序是否可以知道键盘上按键的时间?

我不需要区分哪个密钥并不重要,并且应用程序将被允许无法访问。

1 个答案:

答案 0 :(得分:0)

声明像

这样的事件监视器
var eventMonitor: Any?
在viewDidLoad()方法中

启动monitorng,如

override func viewDidLoad() {
        super.viewDidLoad()
        // Start monitoring
        eventMonitor = NSEvent.addGlobalMonitorForEvents(matching: .keyDown, 
        handler: onEvent)
}

处理程序方法将是ilke

func onEvent(_ incomingEvent: NSEvent) {
        print("KeyPressed \(incomingEvent.characters!)")
}

您希望为您的应用启用辅助功能,以便获取关键新闻事件。以下代码将为请求accessibilt的用户显示一个pop。

let options : NSDictionary = [kAXTrustedCheckOptionPrompt.takeRetainedValue() as NSString: true]