2

最後のメインウィンドウが閉じたときにアプリケーションを閉じたい。applicationShouldTerminateAfterLastWindowClosed:次の理由で使用できません
。1。メインウィンドウを表示する前に1つの確認ウィンドウが表示され、このウィンドウを閉じてもアプリケーションを終了しないでください。
2.ヘルプウィンドウが開いている場合でも、メインウィンドウを閉じた後、アプリケーションを終了する必要があります。

4

2 に答える 2

13

あなたはまだ使うことができますapplicationShouldTerminateAfterLastWindowClosed:

NO最初にメインウィンドウを表示する瞬間まで戻るように書いてください。それ以降は戻しYESてください。

NSPanelのインスタンスは、開いているウィンドウにはカウントされません。したがって、ヘルプウィンドウがNSPanelの場合、これは機能します。

于 2011-05-25T08:20:51.350 に答える
0

実行する必要があるのは、コントロールクラスをメインウィンドウのデリゲートとして設定し、NSNotificationCenterを使用して、yourWindowをオブジェクトとするNSWindowWillCloseNotificationでオブザーバーを追加することです。だからこのように

NSNotificationCenter *c = [NSNotificationCenter defaultCenter];
[c addObserver:self selector:@selector(yourSelector) name:NSWindowWillCloseNotification object:yourWindow];

これで、メインウィンドウが閉じたときにyourSelectorメソッドが呼び出されるので、そのメソッドにはexit(0)のようなものがあります。

詳細については、こちらにアクセスしてwindowWillCloseをご覧ください。

于 2011-05-25T07:10:28.983 に答える