启用/禁用xcode中的菜单项

时间:2012-08-23 17:15:43

标签: xcode menu

我的应用程序有一个主窗口,其中包含一些图形和一个用于调整主窗口内容的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。

(顺便说一下,如果你不知道,我还没有达到所有这些目标的速度!)

1 个答案:

答案 0 :(得分:0)

我不明白菜单层次结构。我现在意识到下拉菜单是一个子菜单,其中的项目可以像这样控制:

menuItem = [rootMenu itemAtIndex:1];  
subMenu = [menuItem submenu];  
[[subMenu itemWithTag:11] setEnabled:YES];  
[[subMenu itemWithTag:12] setEnabled:NO];