【问题标题】:How to bring all the app's windows to front when making active just one?仅激活一个时如何将所有应用程序的窗口置于前面?
【发布时间】:2013-05-15 18:13:22
【问题描述】:

在我的应用程序中,我同时在屏幕上有 4-5 个窗口。有时在工作时某些窗口可能会回到其他应用程序的窗口后面(例如在 xcode 或 safari 后面)。然后,当我使我的应用程序的一个窗口处于活动状态时,其他 3-4 个窗口仍保留在背面。

当我激活其中一个窗口时,有什么方法可以将所有应用程序的窗口都放在前面?

附言我知道我可以使用 [NSApp windows] 并在循环中调用 orderFrontRegardless,但我不知道如何捕捉我的一个窗口变为活动状态的那一刻。

非常感谢任何帮助或提示!

【问题讨论】:

  • NSApplication 的NSApplicationWillBecomeActiveNotification NSApplicationDidBecomeActiveNotification 通知会告诉您应用程序何时激活。

标签: macos cocoa nswindow


【解决方案1】:

这段代码对我有用:

-(void) applicationDidBecomeActive:(NSNotification *)notification
{
    // TODO: go over windows here and bring them active
    for (NSWindow * window in  [NSApp orderedWindows]) {
        [window orderFrontRegardless];
    }
}

不要忘记将文件设置为应用程序的委托,以便此代码正常工作。

【讨论】:

    猜你喜欢
    • 2021-08-06
    • 1970-01-01
    • 1970-01-01
    • 2022-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多