2012-03-24 3 views
0

NSMenuには2つのデフォルト項目(上部に)があります。NSMenuの標準+可変数が2つのNSMenu

その後、残りのメニューが表示されます。

私がしたいのは、初期メニュー(2つの項目を含む)の状態を「保存」し、その(元の)メニューに項目を追加することです。追加と追加を続けるだけではありません。

他のアイテムを追加する必要がある場合は、それらを初期メニューに追加する必要があります。

例:初め

  • メニュー:B |
  • メニューユーザーの操作後:A B | C D E
  • メニューユーザーがそれをした後:A B | G H I J K
  • など

私はそれについてどのように行くべき? (私は最初のメニューを保存して、それを現在のメニューにコピーして、その上にアイテムを追加できるようにしましたが、動作しませんでした...:-S)


[DOC_UI setCurrentMenu:[[DOC_UI originalMenu] copy]]; 

// I'm adding the items here 

for (NSMenuItem* mi in [[DOC_UI currentMenu] itemArray]) 
     NSLog(@"orig :: mi : %@",[mi title]); 

/* The weird thing is that the items ARE NSlogged, but the change is NOT reflected. */ 
/* (When I was just adding to the existing items, the items did show up...) */ 
+0

をそれはあなたがやりたいと思っているものに少し混乱するかもしれません! (または私は厚くなっています)少し詳しく説明できますか?setCurrentMenuは何ですか???あなたはサブメニューやファイルのようなmenuitemsについて話しています。編集、表示 – markhunte

答えて

1

メニューのメニュー項目について話している場合は、元のメニューに戻るときにループ内の最初の2つの項目以外のすべてを削除できます。あなたはuserMenuと呼ばれる2つのデフォルトの項目とメニューを持っている場合は、ちょうどこの操作を行います。

-(void)removeMenuItems { 
for (NSInteger i=self.userMenu.itemArray.count - 1; i>1; i--) { 
    [self.userMenu removeItemAtIndex:i]; 
} 

}

+0

私はその(非常に明白な)解決策を既に考えています...そしてうん、修正済みです!とにかくありがとう! ;-) –

関連する問題