システム全体のホットキーで表示されてフォーカスされる 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;
}