【发布时间】:2011-09-16 04:58:45
【问题描述】:
我有一个 NSMenu,我想保留 3 个静态 NSMenuItem,然后是动态生成的一堆,每次用户单击菜单图标时都应该删除并重新加载。
我正在尝试创建一个弹出的进程列表,但每次打开弹出窗口时,NSMenuItems 都不会清除。他们只是以某种时髦的方式添加。记录 for 循环表明循环没有完成。任何想法为什么?
-(void)menuNeedsUpdate:(NSMenu *)menu{
//Keep Top 3 Menu Items
if(dropDown.numberOfItems > 3){
NSLog(@"-----------Removing Items");
NSLog(@"%d",itemCount);
for(int i = 2; i <= dropDown.numberOfItems; i++){
NSLog(@"%d",i);
[dropDown removeItemAtIndex:i];
}
}
NSArray *appArray = [[NSWorkspace sharedWorkspace] runningApplications];
for (NSRunningApplication *r in appArray){
//NSLog(r.localizedName);
//NSLog(@"------------");
NSMenuItem *i = [[NSMenuItem alloc] initWithTitle:r.localizedName
action:@selector(fooClicked:) keyEquivalent:@""];
[i setTarget:self];
[dropDown addItem:i];
[i release];
}
}
【问题讨论】:
标签: objective-c macos osx-lion nsmenuitem nsmenu