我有一个Objective-C应用程序,它有一个主窗口和一个带有堆栈视图的小进度窗口,用于显示当前进度。
如果通过激活任何其他应用程序然后单击Dock图标将应用程序置于后台,则主窗口和辅助窗口都将显示在前面并显示。
但是,如果我只是在后台点击其中一个窗口,只有那个窗口被激活并被带到前面,另一个窗口停留在后面。
我希望实现这一点,当我点击主窗口时,它与点击Dock图标完全相同,它应该在主窗口激活时显示两个窗口。
但如果我点击进度窗口,我不希望主窗口被带到前面。
我一直无法找到办法,我该如何实现这个目标?
答案 0 :(得分:0)
您可以使用窗口委托-windowDidBecomeKey:
或-becomeKeyWindow
或应用代表的-didBecomeActive:
来检测被点击的窗口。
然后,根据您的具体需求,您可以使用[NSApp activateIgnoringOtherApps:]
或[[NSRunningApplication currentApplication] activateWithOptions:]
(以及可能NSApplicationActivateAllWindows
)。