我想创建 OS X 应用程序,它显示并使用系统范围的热键获得焦点,然后,使用相同的热键它应该消失并切换焦点。就像阿尔弗雷德一样。
问题是我无法专注于以前使用的应用程序。通过专注于我的意思是我不能继续在以前的应用程序中输入。
这是我的热键处理程序:
OSStatus OnHotKeyEvent(EventHandlerCallRef nextHandler,EventRef theEvent, void *userData)
{
AppDelegate *me = (__bridge AppDelegate*) userData;
EventHotKeyID hkCom;
GetEventParameter(theEvent, kEventParamDirectObject, typeEventHotKeyID, NULL, sizeof(hkCom), NULL, &hkCom);
if([[me window] isVisible]) {
[[NSApplication sharedApplication] activateIgnoringOtherApps:NO];
[[me window] orderOut:NULL];
}
else {
[[NSApplication sharedApplication] activateIgnoringOtherApps:YES];
[[me window] makeKeyAndOrderFront:nil];
}
return noErr;
}