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

在我的mainmenu.xib中,我有默认的mainmenu。在window1.xib中,我有窗口1,在window2.xib中,我有window2,它是mainmenu。

当我打开第一个窗口时,我会有默认菜单,当我打开窗口2时,我会得到它的菜单。

但是,当我切换回Window1时,我仍然会看到Window2的菜单。如何使显示的菜单按照键窗口进行?

有帮助吗?

解决方案

nsapplication有一种方法, - (void)setMainMenu:(NSMenu *)aMenu. 。您可以通过实现适当的窗口控制器中的正确菜单将其传递给正确的菜单 - (void)windowDidBecomeKey:(NSNotification *)notification.

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

其他提示

通常,您不应该每次更换整个主菜单。仅禁用不适用于当前窗口的任何菜单项,它更符合人类界面指南。而且,如果您确实应该在菜单栏中拥有完全不同的菜单,则也许您应该将该应用程序的该部分分为单独的应用程序。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top