2012-08-23 88 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];