提前感谢您的帮助。
问题:'@ selector(doSomething)'不是要求' - (void)doSomething:(id)sender'Methods
我试图让状态栏中的项目调用doSomething方法但是当我点击它时似乎没有任何事情发生。
我做错了什么?
AppDelegate.m
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
sync_control *controlObject = [[sync_control alloc] init];
[controlObject startSyncApp];
}
SyncControl.m
NSStatusBar *syncStatusBar;
NSStatusItem *syncStatusItem;
- (void) startSyncApp
{
syncStatusBar = [NSStatusBar systemStatusBar];
syncStatusItem = [syncStatusBar statusItemWithLength:NSSquareStatusItemLength];
NSImage *statusItemImage = [NSImage imageNamed:@"1.png"];
statusItemImage.template = YES;
statusItemImage.size = NSMakeSize(18.0,18.0);
[syncStatusItem setImage:statusItemImage];
[syncStatusItem setHighlightMode:YES];
[syncStatusItem setMenu:[self waitingState:Nil]];
}
- (NSMenu *)waitingState:(id)sender
{
NSMenu *localMenu;
//Create the NSMenu
localMenu = [[NSMenu alloc] initWithTitle:@"Sync"];
[localMenu setAutoenablesItems:NO];
[localMenu insertItemWithTitle:@"Do something now..." action:@selector(doSomething:) keyEquivalent:@"" atIndex:1];
return localMenu;
}
- (void)doSomething:(id)sender
{
NSLog(@"It works!");
}
答案 0 :(得分:0)
问题可能是菜单项有一个动作选择器,但没有目标。试试这个:
NSMenuItem *someItem = [localMenu insertItemWithTitle:@"Do something now..." action:@selector(doSomething:) keyEquivalent:@"" atIndex:0];
[someItem setTarget: self];