【问题标题】:Bring child windows to the front with Cocoa使用 Cocoa 将子窗口放在前面
【发布时间】:2011-07-30 01:31:26
【问题描述】:

在我们的应用程序中,用户可以打开许多“浮动”在主应用程序周围的小型非模态窗口。这些窗口中的每一个都可以调整大小、移动等。当用户单击主应用程序窗口将其置于最前面时,我们还希望将小的浮动窗口置于最前面。

当“应用程序变为活动状态”时,是否有可以跟踪的事件或其他内容? Windows 上的等效消息是 WM_ACTIVATEAPP 消息,但我不确定在 Cocoa 中的何处查找。

【问题讨论】:

    标签: cocoa macos


    【解决方案1】:

    我相信如果您使用 NSPanel(一种窗口),您可以免费获得这种行为。如果您的窗口支持主窗口(并且应该始终伴随它),它们应该是面板,而不是常规窗口。您甚至可以让它们仅在应用程序处于活动状态时可见,并且在应用程序没有焦点时隐藏并且不参与 Expose 以减少混乱。

    【讨论】:

      【解决方案2】:

      当应用程序变为活动状态时,您的应用程序委托会收到applicationDidBecomeActive:。如果您使用的是默认 Xcode 模板,您应该已经有一个对象作为您的应用程序委托。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-13
        • 2015-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多