0

私のアプリには、いくつかのグラフィックスを含むメイン ウィンドウと、メイン ウィンドウの内容を調整するための hud パネルがあります。「調整」というメニュー見出しを使用して、hud を表示し、不要になったら非表示にします。これはすべてうまくいきます。それでは「簡単」な部分へ。「調整」見出しの下に2つの項目があります(これは上から2番目の見出しで、index = 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 !    

両方のドロップダウン項目を暗くすることができますが、もちろん一度に 1 つだけを暗くしたいのです! 個々の項目を参照するにはどうすればよいですか? 「itemWithTag」が機能すると思っていましたが、今のところ機能していません。

Futurebasic の MENU 2,1,0 と MENU 2,2,1 に相当することを行う必要があります。

(ちなみに、私はこれらすべてのオブジェクトについてまだ理解できていません!)

4

1 に答える 1

0

メニュー階層がわかりませんでした。ドロップダウンはサブメニューであり、その中の項目は次のように制御できることがわかりました。

menuItem = [rootMenu itemAtIndex:1];  
subMenu = [menuItem submenu];  
[[subMenu itemWithTag:11] setEnabled:YES];  
[[subMenu itemWithTag:12] setEnabled:NO];  
于 2012-08-26T11:59:00.590 に答える