单击主窗口时,从后台激活所有窗口

时间:2015-09-02 08:28:26

标签: objective-c cocoa

我有一个Objective-C应用程序,它有一个主窗口和一个带有堆栈视图的小进度窗口,用于显示当前进度。

如果通过激活任何其他应用程序然后单击Dock图标将应用程序置于后台,则主窗口和辅助窗口都将显示在前面并显示。

但是,如果我只是在后台点击其中一个窗口,只有那个窗口被激活并被带到前面,另一个窗口停留在后面。

我希望实现这一点,当我点击主窗口时,它与点击Dock图标完全相同,它应该在主窗口激活时显示两个窗口。

但如果我点击进度窗口,我不希望主窗口被带到前面。

我一直无法找到办法,我该如何实现这个目标?

1 个答案:

答案 0 :(得分:0)

您可以使用窗口委托-windowDidBecomeKey:-becomeKeyWindow或应用代表的-didBecomeActive:来检测被点击的窗口。

然后,根据您的具体需求,您可以使用[NSApp activateIgnoringOtherApps:][[NSRunningApplication currentApplication] activateWithOptions:](以及可能NSApplicationActivateAllWindows)。