当前位置:  开发笔记 > 后端 > 正文

Swift NSEvent无法正常工作

如何解决《SwiftNSEvent无法正常工作》经验,为你挑选了2个好方法。

下面是我简单的AppDelegate.swift类.

//  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)");
    }

}

怎么没有打印关键事件?我错过了什么?我试过四处寻找,但无法弄明白.



1> Tamás Zahola..:

NSEvent.h有关addGlobalMonitorForEventsMatchingMask:handler::

如果启用了辅助功能,或者您的应用程序受信任以进行辅助功能访问,则只能监视与密钥相关的事件(请参阅AXUIElement.h中的AXIsProcessTrusted).请注意,不会为发送到您自己的应用程序的事件调用您的处理程序.



2> l'L'l..:

为了在NSEvent当前拥有全局使用,您必须允许通过辅助功能设置来信任您的应用程序.如果你想在NSEvent本地使用,你可以这样做:

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

func keyDown(event: NSEvent!) -> NSEvent {
    NSLog("key down is \(event.keyCode)");
    return event
}

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有