当前位置:  开发笔记 > IOS > 正文

如何更改Cocoa中的主菜单?

如何解决《如何更改Cocoa中的主菜单?》经验,为你挑选了2个好方法。

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

在我的MainMenu.xib中,我有默认的MainMenu.在Window1.xib中我有Window1,在Window2.xib中我有Window2,它是MainMenu.

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

但是,当我切换回Window1时,我仍然看到Window2的菜单.如何使显示的菜单跟随关键窗口?



1> Peter Hosey..:

通常,您不应每次都替换整个主菜单.它更符合人机界面指南,只是禁用任何不适用于当前窗口的菜单项.如果你真的应该在菜单栏中有一套完全不同的菜单,也许你应该将应用程序的那一部分拆分成一个单独的应用程序.


我也考虑过这一点,但它在应用程序之间共享数据的复杂性很大.它有点像XCode/Interface Builder,它们应该是单独的应用程序还是相同的应用程序.你可以双向争论.

2> Marc Charbon..:

NSApplication有一个方法,- (void)setMainMenu:(NSMenu *)aMenu.您可以通过实现将相应窗口控制器中的正确菜单的引用传递给它- (void)windowDidBecomeKey:(NSNotification *)notification.

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

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有