我使用函数RegisterEventHotKey(),当我尝试注册Cmd + C或Cmd + V时,我注意到在finder中复制和粘贴不起作用。
我将参数inOptions = 0插入到函数RegisterEventHotKey()中,所以它应该是非独占的,但为什么finder似乎没有收到这个热键?
EventTypeSpec eventType;
eventType.eventClass=kEventClassKeyboard;
eventType.eventKind=kEventHotKeyPressed;
InstallApplicationEventHandler(&MyHotKeyHandler,1,&eventType,(void *)self,NULL);
EventHotKeyID gMyHotKeyID;
NSInteger keycode = 8; // 'C'
UInt32 modkey=0;
modkey+=cmdKey;
RegisterEventHotKey((int)keycode, modkey, gMyHotKeyID,
GetApplicationEventTarget(), 0, &hotkeyRef);
//
OSStatus MyHotKeyHandler(EventHandlerCallRef nextHandler,EventRef theEvent,
void *userData)
{
NSLog(@"test hot key");
return eventNotHandledErr;
}
这是代码。当我单击cmd + C时,它会显示日志“test hot key”,但是finder没有复制所选文件。
*我的申请是代理人。有菜单栏,并始终在后台运行。
答案 0 :(得分:3)
它不起作用,因为当您安装热键处理程序时,可以替换每个应用程序中该组合键的默认功能。