我的应用程序有一个主窗口,其中包含一些图形和一个用于调整主窗口内容的hud面板。我使用一个名为“调整”的菜单标题来调出hud,并在不再需要时将其隐藏起来。一切正常。现在到了“容易”的部分。 我在“调整”标题下有2个项目(这是第二个向上标题,索引= 1):“显示调整”以打开包含所有滑块的(hud)调整面板,并使用“隐藏调整”关闭窗口。我认为我应该调暗“隐藏调整”项目直到面板打开,然后隐藏“显示调整”项目,直到面板关闭。在阅读了所有有关NSMenu,NSMenuItem等的内容之后,我在做这方面遇到了一些困难。 在我的awakeFromNib文件中,我有:
rootMenu = [NSApp mainMenu];
[rootMenu setAutoenablesItems:NO];
[[rootMenu itemWithTag:11] setEnabled:YES];// I set the Tag for "Show .." in IB to 11
[[rootMenu itemWithTag:12] setEnabled:NO];// I set the tag for "Hide .." in IB to 12
什么也没做!
在连接到“显示调整”项目的IBAction“功能”中,我有:
[self orderFront:nil]; // which opens the hud
//但这个东西不会使第一个下拉菜单项变暗:
[[rootMenu itemWithTag:11] setEnabled:NO];// doesn't do anything
[[rootMenu itemWithTag:12] setEnabled:YES];// doesn't do anything
[[rootMenu itemAtIndex:0] setEnabled:NO];// dims the "quit" menu - un-guideline-like, I know, I know !
如果我加上这个:
[[rootMenu itemAtIndex:1] setEnabled:NO]; // both items dim, so I think I'm close !
我可以将两个下拉项目调暗,但当然我只想一次调暗其中一个! 我如何参考个别物品?我认为“itemWithTag”会起作用,但到目前为止还没有。
如果有帮助,我需要在Futurebasic中执行相同的MENU 2,1,0和MENU 2,2,1。
(顺便说一下,如果你不知道,我还没有达到所有这些目标的速度!)
答案 0 :(得分:0)
我不明白菜单层次结构。我现在意识到下拉菜单是一个子菜单,其中的项目可以像这样控制:
menuItem = [rootMenu itemAtIndex:1];
subMenu = [menuItem submenu];
[[subMenu itemWithTag:11] setEnabled:YES];
[[subMenu itemWithTag:12] setEnabled:NO];