Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 鼠标点击和按键计数点击任何地方_Objective C_Macos_Cocoa - Fatal编程技术网

Objective c 鼠标点击和按键计数点击任何地方

Objective c 鼠标点击和按键计数点击任何地方,objective-c,macos,cocoa,Objective C,Macos,Cocoa,我想在我的mac应用程序中实现一个功能,它将返回我在任何地方(在我的应用程序中或外部)点击的鼠标点击次数和击键次数。请引导我 谢谢NSEvent的+(id)addGlobalMonitorForEventsMatchingMask:(NSEventMask)掩码处理程序:(void(^)(NSEvent*))块提供了此功能 下面是一个简单的例子: [NSEvent addGlobalMonitorForEventsMatchingMask:NSKeyDownMask|NSLeftMouseDow

我想在我的mac应用程序中实现一个功能,它将返回我在任何地方(在我的应用程序中或外部)点击的鼠标点击次数和击键次数。请引导我

谢谢

NSEvent的
+(id)addGlobalMonitorForEventsMatchingMask:(NSEventMask)掩码处理程序:(void(^)(NSEvent*))块提供了此功能

下面是一个简单的例子:

[NSEvent addGlobalMonitorForEventsMatchingMask:NSKeyDownMask|NSLeftMouseDownMask handler:^(NSEvent *anEvent){

    if(anEvent.type==NSKeyDown)
    {
        NSLog(@"Had key down event: %@",anEvent);
    }
    if(anEvent.type==NSLeftMouseDown)
    {
        NSLog(@"Had left mouse down event: %@",anEvent);
    }
}];
您可以在应用程序初始化期间将其添加到某个位置,例如在应用程序代理的
-applicationdFinishLaunching:
方法中

上述内容不在应用程序中注册事件,仅在其他应用程序中注册。如果您的应用程序中还需要事件,您可以添加本地监视器(当它返回事件时略有不同):


另请注意,根据NSEvent文档:只有在启用了可访问性或您的应用程序受信任可访问性访问时(请参阅AXIsProcessTrusted),才能监视与密钥相关的事件。

请进一步解释。那将非常有帮助。非常感谢。
    [NSEvent addLocalMonitorForEventsMatchingMask:NSKeyDownMask|NSLeftMouseDownMask handler:^NSEvent *(NSEvent *anEvent){

        if(anEvent.type==NSKeyDown)
        {
            NSLog(@"Had local key down event: %@",anEvent);
        }
        if(anEvent.type==NSLeftMouseDown)
        {
            NSLog(@"Had local left mouse down event: %@",anEvent);
        }

        return anEvent;
    }];