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