質問

私は、それぞれ2種類の窓とココアのアプリが表示される別のメインメニューを必要としています。

私のMainMenu.xibでは、私は、デフォルトのMainMenuを持っています。 Window1.xibで、私はウィンドウ1を持っているとWindow2.xibに私はウィンドウ2を持っており、それがメインメニューです。

私は最初のウィンドウのオープンを持っている場合、私はそれは、メニューの取得ウィンドウ2私が開いたときに

私は、デフォルトのメニューを持っています。

私は戻ってウィンドウ1に切り替えると、

しかし、私はまだウィンドウ2のメニューを参照してください。どうすれば表示されるメニューは、キーウィンドウに従って作るのですか?

役に立ちましたか?

解決

NSApplicationのメソッド、- (void)setMainMenu:(NSMenu *)aMenuを有しています。あなたは- (void)windowDidBecomeKey:(NSNotification *)notificationを実装することにより、適切なウィンドウコントローラに正しいメニューへの参照を渡すことができます。

は、アプリケーションの2つの異なるコピーを維持するために持っていないので、全体のメインメニューをスワップアウトするのではなく、単にサブメニューを変更する方が簡単かもしれ覚えておいてください、との間で変更されません他のメニュー二つのウィンドウます。

他のヒント

一般的に、あなたは全体のメインメニューを毎回交換するべきではありません。これは単に現在のウィンドウには適用されません任意のメニュー項目を無効にするには、ヒューマンインターフェイスガイドラインにより従順です。あなたが本当にメニューバーのメニューの完全に異なるセットを持っている必要がある場合と、多分あなたは別のアプリケーションにあなたのアプリケーションの一部を分割する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top