我有一个状态栏菜单应用程序 - 它不在Dock中运行(UIElement为YES)。
在用户定义的时间段之后,它将其中一个窗口带到前面(使用makeKeyAndOrderFront)。设置NSTimer以在几秒钟之后摆脱它 - 我关闭窗口并隐藏应用程序: [NSApp隐藏];
我的问题是,如何将之前的应用程序窗口重新置于前面?它是可见的,但不是前/焦点窗口。
编辑:如果它有助于澄清我正在尝试做什么,当您使用键盘快捷键调用应用程序Dash然后关闭它时,之前的应用程序将返回到前面。
答案 0 :(得分:3)
我过度思考 - 作为用户,可以隐藏一个应用程序,该应用程序会自动将焦点恢复到下一个应用程序中的窗口。这就是我在代码中必须做的所有事情:
[NSApp hide:nil];
为了更好地使用全屏应用程序,我还必须关闭我的应用程序中的窗口,即使它已被隐藏 - 否则,当我的应用程序窗口下一次显示时,OS X会跳转到我的窗口最后一个窗口看到了,一种不和谐的经历。
[self.theWindow close];