2011-11-15 6 views
1

2次環境設定ウィンドウで動作する単純なアプリケーションで作業していますが、わかりにくい動作が見つかりました。ショートカット "Command + W"で表示されているすべてのウィンドウを閉じる方法

私がCmd + Wを押すと設定ウィンドウを開くと、メインウィンドウのみが閉じられます。 これは標準的な動作ですか?すべてのウィンドウを閉じる方法を実装する最善の方法はどれですか?

+0

あなたはCommand + Option + Wについて話しています。キーコンボが機能していないと確信していますか? –

+0

@FrancisMcGrew私はメニュー "File"の下で "Command + W"について話しています。例としてXcode ... Cmd + Wを押すたびに環境設定を開くと、環境設定ウィンドウだけを閉じます...すべてのウィンドウを閉じる必要があります。これは可能ですか? – MatterGoal

答えて

7

[[NSApp windows] makeObjectsPerformSelector:@selector(close)];

ユーザーがコマンド+ Wは、アプリケーションのすべてのウィンドウを閉じることを期待していないため、すべてのウィンドウを閉じるにはプログラム的な方法ですが、それは本当に良いデザインではありません。これがCommand + Option + Wの目的です。

ドキュメントベースのアプリケーションを使用している場合は、セカンダリウィンドウをNSPanelのインスタンスに変更し、[ドキュメントモーダル]属性を確認します。こうすることで、ドキュメントウィンドウが閉じられると、セカンダリウィンドウも閉じられます。

ドキュメントベースのアプリでない場合は、ウィンドウの[非アクティブ化時に非表示]属性をチェックすると、アプリがバックグラウンドに入ったときにウィンドウが非表示になります。

それ以外の場合、2つのウィンドウを一緒にバインドする場合は、NSWindowDelegateを設定し、相対的な可視性状態を手動で維持する必要があると思います。それは理にかなっていますか?

関連する問題