4

我有一个具有两种类型窗口的可可应用程序,每种类型的窗口都需要显示不同的主菜单。

在我的 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.

请记住,仅更改子菜单而不是更换整个主菜单可能更容易,因为您不必维护应用程序、帮助和其他不会在两个窗口之间更改的菜单的两个不同副本.

于 2008-12-12T16:13:09.137 回答