4

それぞれ異なるメインメニューを表示する必要がある2種類のウィンドウを持つココアアプリがあります。

私の MainMenu.xib には、デフォルトの MainMenu があります。Window1.xib には Window1 があり、Window2.xib には Window2 があり、それが MainMenu です。

最初のウィンドウを開くとデフォルトのメニューが表示され、Window2 を開くとメニューが表示されます。

ただし、Window1 に戻すと、まだ Window2 のメニューが表示されます。表示されるメニューをキー ウィンドウに追従させるにはどうすればよいですか?

4

2 に答える 2

12

通常、メイン メニュー全体を毎回置き換える必要はありません。現在のウィンドウに適用されないメニュー項目を単に無効にする方が、ヒューマン インターフェイス ガイドラインにより準拠しています。また、メニュー バーに完全に異なるメニュー セットが必要な場合は、アプリケーションのその部分を別のアプリケーションに分割する必要があります。

于 2008-12-12T18:27:09.350 に答える
5

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

アプリケーション、ヘルプ、および 2 つのウィンドウ間で変更されないその他のメニューの 2 つの異なるコピーを維持する必要がないため、メイン メニュー全体を交換するよりも、サブメニューのみを変更する方が簡単な場合があることに注意してください。 .

于 2008-12-12T16:13:09.137 に答える