gpt4 book ai didi

objective-c - 鼠标点击和击键计数在任何地方点击

转载 作者:行者123 更新时间:2023-12-03 16:57:54 25 4
gpt4 key购买 nike

我想在我的 Mac 应用程序中实现一项功能,该功能将返回我在任何位置(在我的应用程序中或外部)单击的鼠标点击和击键计数。请指导我。

谢谢

最佳答案

NSEvent 的 + (id)addGlobalMonitorForEventsMatchingMask:(NSEventMask)mask handler:(void (^)(NSEvent*))block 提供此功能。

这是一个简单的示例:

[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);
}
}];

您可以在应用程序初始化期间将其添加到某个位置,例如在应用程序委托(delegate)的 -applicationDidFinishLaunching: 方法中。

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

    [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;
}];

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

关于objective-c - 鼠标点击和击键计数在任何地方点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17031022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com