Я .Net-разработчик, которому нужно портировать небольшой проект на Mac, поэтому я почти ничего не знаю об Objective C. На самом деле приведенный ниже код был просто набором хватаний за соломинку и стрельбы в темноте.
Попытка создать программу меню состояния, которая открывает то или иное окно в зависимости от того, щелчок левой кнопкой мыши или щелчок правой кнопкой мыши / ctrl + щелчок. Вот что у меня есть, и это работает только для щелчка левой кнопкой мыши (очевидно):
-(void) awakeFromNib{
NSBundle *bundle = [NSbundle mainBundle];
statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSSquareStatusItemLength] retain];
[statusImage = [[NSImage alloc] initWithContentsOfFile:[bundle pathForResource:@"icon" ofType:@"png"]];
[statusItem setImage:statusImage];
[statusItem setToolTip:@"Program Name"];
[statusItem setHighlightMode:YES];
[statusItem setAction:@selector(openWin:)];
[statusItem setTarget: self];
}
-(void)openWin:(id)sender{
[self openLeftWindow:sender];
}
-(IBAction)openLeftWindow:(id)sender{
//Code to populate Left Click Window
[leftWindow makeKeyAndorderFront:nil];
}
-(IBAction)openRightWindow:(id)sender{
//Code to populate Right Click Window
[rightWindow makeKeyAndorderFront:nil];
}
Мне кажется, что решением будет либо оператор if в функции openWin(), чтобы определить, какая кнопка нажата (или удерживается ли ctrl), затем запустить соответствующий код, либо чтобы меню знало как о левом, так и о правом клики. Но ни один из них не работал, когда я пытался это сделать.
Заранее спасибо.