どのように私はココアのメインメニューを変更できますか?
-
21-08-2019 - |
質問
私は、それぞれ2種類の窓とココアのアプリが表示される別のメインメニューを必要としています。
私のMainMenu.xibでは、私は、デフォルトのMainMenuを持っています。 Window1.xibで、私はウィンドウ1を持っているとWindow2.xibに私はウィンドウ2を持っており、それがメインメニューです。
私は最初のウィンドウのオープンを持っている場合、私はそれは、メニューの取得ウィンドウ2私が開いたときに私は、デフォルトのメニューを持っています。
私は戻ってウィンドウ1に切り替えると、しかし、私はまだウィンドウ2のメニューを参照してください。どうすれば表示されるメニューは、キーウィンドウに従って作るのですか?
解決
NSApplicationのメソッド、- (void)setMainMenu:(NSMenu *)aMenu
を有しています。あなたは- (void)windowDidBecomeKey:(NSNotification *)notification
を実装することにより、適切なウィンドウコントローラに正しいメニューへの参照を渡すことができます。
は、アプリケーションの2つの異なるコピーを維持するために持っていないので、全体のメインメニューをスワップアウトするのではなく、単にサブメニューを変更する方が簡単かもしれ覚えておいてください、との間で変更されません他のメニュー二つのウィンドウます。
他のヒント
一般的に、あなたは全体のメインメニューを毎回交換するべきではありません。これは単に現在のウィンドウには適用されません任意のメニュー項目を無効にするには、ヒューマンインターフェイスガイドラインにより従順です。あなたが本当にメニューバーのメニューの完全に異なるセットを持っている必要がある場合と、多分あなたは別のアプリケーションにあなたのアプリケーションの一部を分割する必要があります。