【发布时间】:2011-07-30 01:31:26
【问题描述】:
在我们的应用程序中,用户可以打开许多“浮动”在主应用程序周围的小型非模态窗口。这些窗口中的每一个都可以调整大小、移动等。当用户单击主应用程序窗口将其置于最前面时,我们还希望将小的浮动窗口置于最前面。
当“应用程序变为活动状态”时,是否有可以跟踪的事件或其他内容? Windows 上的等效消息是 WM_ACTIVATEAPP 消息,但我不确定在 Cocoa 中的何处查找。
【问题讨论】:
在我们的应用程序中,用户可以打开许多“浮动”在主应用程序周围的小型非模态窗口。这些窗口中的每一个都可以调整大小、移动等。当用户单击主应用程序窗口将其置于最前面时,我们还希望将小的浮动窗口置于最前面。
当“应用程序变为活动状态”时,是否有可以跟踪的事件或其他内容? Windows 上的等效消息是 WM_ACTIVATEAPP 消息,但我不确定在 Cocoa 中的何处查找。
【问题讨论】:
我相信如果您使用 NSPanel(一种窗口),您可以免费获得这种行为。如果您的窗口支持主窗口(并且应该始终伴随它),它们应该是面板,而不是常规窗口。您甚至可以让它们仅在应用程序处于活动状态时可见,并且在应用程序没有焦点时隐藏并且不参与 Expose 以减少混乱。
【讨论】:
当应用程序变为活动状态时,您的应用程序委托会收到applicationDidBecomeActive:。如果您使用的是默认 Xcode 模板,您应该已经有一个对象作为您的应用程序委托。
【讨论】: