1

私はNSWindowサブクラスに取り組んでいて、MacOSXでWindowsがどのように機能するかについての私の仮定のいくつかに疑問を投げかける奇妙な振る舞いに遭遇しています。

が呼び出されると、NSWindowインスタンスは正確にどうなりますか?[[NSApplication sharedApplication] hide: self]

NOを返さないすべてのウィンドウは-(BOOL)canHide、画面から消えます。[NSApplication sharedApplication] unhide: self]その後、アプリケーションがアクティブになるか呼び出されると、すべてのウィンドウが再表示されます。

これは、現在のウィンドウの状態のスナップショットを取り、orderOut:すべてのNSWindowインスタンスを呼び出し、unhide:が呼び出されたときにすべてを逆方向に実行することで実現されると想定していました。

しかし、そうではないようです。orderOut:私のサブクラスのメソッドNSWindowは呼び出されません。実際、それも隠されていません。setCanHide:それはYESに設定されていますが..何が起こっているのですか?

任意の洞察をいただければ幸いです。

よろしくお願いします、

フランク

4

1 に答える 1

2

楽器を起動して、自分で調べてください!私のマシン(10.6.4)と32ビットアプリケーションでは、を[NSApplication hide:]呼び出しますShowHideProcess。そこに文書化されています:

http://developer.apple.com/library/mac/#documentation/Carbon/Reference/Process_Manager/process_mgr_ref.pdf

次にShowHideProcess呼び出しますCPSPostHideReqCoreGraphicsの何か)。

しかし、orderOut:はありません。実際には、まったくありませんobjc_msgSend()

何のために必要ですか?それともあなたはただ興味がありましたか?ほとんどの場合、をよく聞く必要があるためですNSApplicationWill/DidHideNotification

于 2010-10-27T16:24:46.437 に答える