2

Cocoa に移行する Carbon ベースのアプリケーションがあります。現在、アプリケーションのウィンドウは Carbon ウィンドウ (CaW1) です。このウィンドウは、Cocoa ウィンドウ (CoW1) を作成して表示します。Cocoa ウィンドウは、別の Cocoa ウィンドウ (CoW2) を作成して表示します。

これを行うと、画面上のすべてのウィンドウの順序は、後ろから前に次のようになります。

CaW1
CoW1
CoW2

CoW2 は一番上のウィンドウで、その下に CoW1 があり、その後ろに CaW1 があります。これは私が期待する動作です。

現在、Lion で Mission Control を起動してアプリをクリックすると、ウィンドウの順序が変更されます。新しい順序は次のとおりです。

CaW1
CoW2
CoW1

2 つの Cocoa ウィンドウの位置が入れ替わっています。この動作は、私が期待するものではありません。私は CoW2 が CoW1 の上にとどまることを期待していたでしょう。

なぜこれが起こっているのかを理解しようとしています。何かご意見は?

4

1 に答える 1

0

いくつかのCocoaウィンドウを備えたCarbonベースのアプリでは、これを各NSWindowControllerサブクラスに追加する習慣があります。

- (void)windowDidBecomeMain:(NSNotification *)notification
{
    ActivateWindow( (WindowRef) [[self window] windowRef], true );
}

それはいくつかのウィンドウの順序付けの問題に役立つように見えましたが、それがあなたの問題に役立つかどうかはわかりません。

于 2012-05-26T04:39:35.263 に答える