2012-08-23 86 views
0

我的应用程序有一个主窗口,有一些图形和一个hud面板,用于调整主窗口上的东西。我使用名为“调整”的菜单标题来调出hud,并在不再需要时将其隐藏起来。这一切工作正常。现在到“易”部分。 我在“调整”标题(这是第二个标题向上,索引= 1)下有两个项目:“显示调整”以打开带有所有滑块的(hud)调整面板和“隐藏调整”以关闭窗口。我认为我应该调暗“隐藏调整”项目,直到面板被打开,然后隐藏“显示调整”项目,直到面板关闭。我在读表所有关于NSMenu,NSMenuItem等 在我awakeFromNib文件后,一些困难这样做,我有:在xcode中启用/禁用菜单项

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

我听不懂的菜单层级。我现在意识到,下拉菜单是一个子菜单,其中的项目可以像这样控制:

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