2011-07-30 83 views
0

在我們的應用程序中,用戶可以打開一些小的非模態窗口,它們圍繞主應用程序「浮動」。每個窗口都可以調整大小,移動等等。當用戶點擊主應用程序窗口將其放到前面時,我們也想將小浮動窗口放在前面。用Cocoa將子窗口帶到前面

是否有事件或我可以追蹤「應用程序變爲活動」的時間?在Windows上的等價物將是WM_ACTIVATEAPP消息,但我不確定在Cocoa中查找的位置。

回答

1

當應用程序變爲活動狀態時,您的應用程序代理收到applicationDidBecomeActive:。如果您使用的是默認的Xcode模板,那麼您應該已經有一個對象,即您的應用程序委託。

2

我相信如果你使用NSPanel(一種窗口),你可以免費得到這個行爲。如果你的窗口支持主窗口(並且應該總是伴隨它),它們應該是面板,而不是常規的窗口。你甚至可以讓它們只在應用程序處於活動狀態時纔可見,並且當應用程序沒有專注以減少混亂時,它們隱藏並且不參與Expose。