我有一个NSMenu
,其中包含2个默认项目(位于其顶部)。
然后将填充菜单的其余部分。
我想要的是“保存”初始菜单的状态(包含两个项目),并将项目添加到该(原始)菜单;而不只是继续添加和添加。
因此,如果我必须添加其他项目,则必须在初始菜单中添加这些项目。
示例:
- 菜单开头:A 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 :(得分:1)
如果您正在谈论菜单的菜单项,当您想要返回原始菜单时,可以在循环中删除除前2项之外的所有项目。如果您有一个名为userMenu的2个默认项目的菜单,请执行以下操作:
-(void)removeMenuItems {
for (NSInteger i=self.userMenu.itemArray.count - 1; i>1; i--) {
[self.userMenu removeItemAtIndex:i];
}
}