2009-06-07 12 views
2

これは決して答えられなかった私の以前の質問の1つに似ています。 Dockアイコンを閉じると、メインウィンドウを開くためにmakekeyandorderfrontメソッドを使用したいと思います。私はウィンドウを開くボタンでこれを行っていますが、インターフェースビルダーで接続できないので、Dockアイコンを使ってそれを行う方法がわかりません。あなたは、ドック内のアプリのアイコンのクリックを処理するために使用することができますDockアイコンをクリックすると、どのようにウィンドウが表示されますか?

- (BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)flag; 

答えて

13

NSApplicationのデリゲートの中デリゲートメソッドがあります。 its documentationを参照してください。

+5

ちょうどあなたが残忍なことをやめるようにする:[_window makeKeyAndOrderFront:nil];もちろん、デリゲートのクラスにはインスタンス変数が必要です。 B.t.w .: SOはコーディングに関する質問です。コピー&ペーストするための完全なコード例が必要な場合は、Web上に他のサイトがあります。 –

5

は、これを処理する別の方法があります:

よりもむしろ

試してみて、再オープンアプリのウィンドウを使用すると、最後のウィンドウを閉じたときに終了するようにアプリを言うことができるドックをクリックして。これにより、ウィンドウが開いていないときにアクティブなドックアイコンが表示されることはありません。

入れアプリのデリゲートあなたが選択した方法

- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)theApplication { 
    return YES; 
} 

このdelagate方法は、しかし、あなたとあなたのアプリ次第です。私はそれが唯一のウィンドウがシャットダウンされているときにあなたのアプリケーションを実行する意味がないので、非ドキュメントベースのアプリケーションでこのメソッドを使用することを好む。

+0

コードをお寄せいただきありがとうございますが、それは私のアプリケーションには合わないでしょうが、これも可能であることを知っておきましょう。ありがとう。 – Joshua

+2

単なるコードとは考えないでください。これは、多くのNSApplicationデリゲートメソッドの1つを使用する例です。 – Abizern

関連する問題