如何在OSX应用程序中保存焦点上下文并返回到它?

时间:2013-01-13 07:25:17

标签: macos cocoa focus menubar

我正在编写一个菜单栏应用程序,当按下全局热键时会显示一个窗口。该应用程序没有停靠图标,也没有普通菜单(只有statusItem)。

在激活应用程序之前,假设我在Chrome页面上有一个文本框。当我的申请被驳回时,如何重新聚焦该文本框。

如果您熟悉Text Expander,他们会做类似的事情。

1 个答案:

答案 0 :(得分:0)

我想出来了。您需要NSRunningApplication:

@implementation AppDelegate { NSRunningApplication *_previousApplication; }

然后在您变为活动状态之前存储先前的应用程序:

_previousApplication = [[NSWorkspace sharedWorkspace] frontmostApplication];

最后,在停用后,只需带回另一个应用程序:

[_previousApplication activateWithOptions:NSApplicationActivateIgnoringOtherApps];