我工作的一個子類NSWindow
和我遇到一些奇怪的行爲,讓我懷疑我的一些假設有關Windows在Mac OS X中是如何工作的NSApp隱藏了什麼:實際上是否使用NSWindow實例?
時[[NSApplication sharedApplication] hide: self]
叫什麼恰恰發生在NSWindow
實例?
所有不返回NO的窗口到-(BOOL)canHide
從屏幕上消失。然後,當應用程序變爲活動狀態或調用[NSApplication sharedApplication] unhide: self]
時,所有窗口都會重新顯示。
我曾經以爲,這種通過採取當前窗口狀態的快照,然後呼籲所有NSWindow
實例orderOut:
,然後向後進行整個事情時unhide:
被稱爲實現。
但是,似乎並非如此。我的NSWindow
子類的orderOut:
方法不被稱爲..實際上它也沒有被隱藏。它確實將setCanHide:
設置爲YES,但是發生了什麼?
任何見解都將非常感激。
最好的問候,
弗蘭克
謝謝你看看。我最後做了幾乎相同的事情,單步調試調試器,但這不是我所熟悉的事情。我認爲有人可能會對以前的工作有一些想法......在OS X中,Cocoa層經常只做表面工作,然後一切都進入Carbon層。我試圖自己做很多窗口管理,因爲我需要更多的窗口行爲控制,而不是Cocoa通常給你的(窗口更改層)。如果NSWindow真的完成了整個工作,那將會很好。 – 2010-10-29 06:11:07
最後,我意識到我無法通過繼承NSWindow或通過通知獲得所有必需的功能,所以我得到了一個混合解決方案(覆蓋一些窗口管理任務,並在後臺重新配置NSWindow以響應應用程序和窗口通知),它似乎工作正常。這不是很優雅。謝謝你的幫助。 – 2010-10-29 06:17:06