У меня есть небольшое приложение с какао, которое обычно работает в фоновом режиме (в качестве агента). Иногда я хотел бы иметь возможность открыть контекстное меню (в это время окна или другие элементы не отображаются).
Поскольку я нацеливаюсь только на снежного барса, я попробовал это:
if (windows) {
NSMenu *theMenu = [[[NSMenu alloc] initWithTitle:@"test"] autorelease];
[theMenu setShowsStateColumn:NO];
[theMenu setAutoenablesItems:NO];
for (id item in windows) {
NSString *labelText = @"some text";
NSMenuItem *theMenuItem = [[[NSMenuItem alloc] initWithTitle:labelText
action:@selector(menuItemSelected:)
keyEquivalent:@""] autorelease];
[theMenuItem setTarget:self];
[theMenuItem setRepresentedObject:item];
[theMenuItem setEnabled:YES];
[theMenuItem setImage:icon];
[theMenu addItem:theMenuItem];
}
[theMenu popUpMenuPositioningItem:nil atLocation:[NSEvent mouseLocation] inView:nil];
}
Меню всплывающее меню идеально, но если я наведу курсор мыши на элементы, они не будут выделены, и я не могу щелкнуть их.
menuItemSelected: метод выглядит так:
-(IBAction)menuItemSelected:(id)sender {
}
Есть идеи, что я делаю не так?