4

わかりました、単純でばかげているように見えるかもしれませんが、これが私のシナリオです:

  • アプリケーション ウィンドウ (メイン ウィンドウは 1 つだけ) が最小化されている
  • ユーザーがドック メニューの何かをクリックする
  • そのメイン ウィンドウを元に戻したい

単純?

そうではありません。

次の方法でメインウィンドウにアクセスしようとしました:

  • [[NSApplication sharedApplication] mainWindow]
  • [[NSApplication sharedApplication] windows]

メッセージを送信しmakeKeyAndOrderFront:ますが、単に表示されません。

私はすべてのウィンドウを表示しようとしました(そうです、私が使用している1つか2つの(隠された)シートをまだ「ウィンドウ」として認識しています...)、それでも何もありません。

どこにもコンセントを設置しなくても、最終的にそのウィンドウを表示できる方法を提案していただけますか?

知らない; 疲れすぎて気付かないのかもしれないけど、これは神経がすり減るくらいだ...

4

1 に答える 1

11

次のようにウィンドウの最小化を解除できます。

if([aWindow isMiniaturized])
{
   [aWindow deminiaturize:self];
}

ただし、ウィンドウを最小化するとメイン ステータスが失われるという問題があるため、ウィンドウを識別する別の方法が必要になります。

なんでコンセントしか使えないの?

次のように、最小化されたすべてのウィンドウの最小化をアプリに解除させることができます。

for(NSWindow* win in [NSApp windows])
{
    if([win isMiniaturized])
    {
        [win deminiaturize:self];
    }
}

アプリの起動時に、メイン ウィンドウへの参照を保存し、NSWindowDidMiniaturizeNotification. メインウィンドウがいつ最小化されるかがわかるので、これも役立つ場合があります。

于 2012-04-19T10:34:54.680 に答える