2

Carbon では、HideWindow(WindowRef) と ShowWindow(WindowRef) を使用してウィンドウの可視性を変更できます。

Cocoa では、NSWindow の orderOut: を呼び出して非表示にし、orderFront:、orderBack:、または orderWindow:relativeTo: を呼び出して画面に戻すことができることを知っていますが、それらのいずれも、他のウィンドウが最後に表示されたときの相対的なウィンドウの順序を尊重しません。

たとえば、上下に 2 つのウィンドウがあり、背面のウィンドウでorderOut: を呼び出す場合、 orderWindow:relativeTo: を呼び出さずに前面のウィンドウの背後にあるようにウィンドウを再度表示するにはどうすればよいですか。

今考えられる唯一のことは、そのすぐ上のウィンドウのウィンドウ ID を覚えておいて、それを再度表示するときに orderWindow:relativeTo: を使用することですが、上のウィンドウが表示される前に閉じられた場合にどうなるかは考えていません。リアウィンドウが再び見えるようになりました。

4

1 に答える 1

1

ココアで利用できる方法はないと思います。あなたのアイデアを使ってそれを模倣する必要があると思います。

ちなみに、次のように並べられた 4 つのウィンドウから開始した場合の Carbon の動作はどうでしたか。

 A B X C D E

次に隠すX

 A B C D E

ユーザーはそれらを並べ替え、一部を削除します。

 E A C

そして、X再び表示します。Xこの場合、カーボンのどこに行ったのですか?

于 2011-02-10T14:29:32.943 に答える