首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift NSEvent不工作

Swift NSEvent不工作
EN

Stack Overflow用户
提问于 2015-12-12 20:53:04
回答 2查看 3K关注 0票数 10

下面是我的简单AppDelegate.swift课程。

代码语言:javascript
复制
//  AppDelegate.swift

import Cocoa

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

    func applicationDidFinishLaunching(aNotification: NSNotification) {
        NSEvent.addGlobalMonitorForEventsMatchingMask(NSEventMask.KeyDownMask, handler: keyDown);
    }

    func keyDown(event:NSEvent!) {
        print("key down is \(event.keyCode)");
    }

}

为什么没有打印按键事件?我遗漏了什么?我试过到处找,但搞不清楚。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-12 21:29:21

根据NSEvent.h on addGlobalMonitorForEventsMatchingMask:handler:

只有在启用可访问性或信任应用程序进行可访问性访问(请参阅AXUIElement.h中的AXIsProcessTrusted )时,才可能监视与密钥相关的事件。请注意,对于发送到您自己的应用程序的事件,您的处理程序不会被调用。

票数 11
EN

Stack Overflow用户

发布于 2015-12-12 21:31:44

为了像现在这样在全局上使用NSEvent,您必须允许通过可访问性设置信任您的应用程序。如果您想在本地使用NSEvent,可以这样做:

代码语言:javascript
复制
func applicationDidFinishLaunching(aNotification: NSNotification) {
    NSEvent.addLocalMonitorForEventsMatchingMask(NSEventMask.KeyDownMask, handler: keyDown);
}

func keyDown(event: NSEvent!) -> NSEvent {
    NSLog("key down is \(event.keyCode)");
    return event
}
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34244865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档