Я - разработчик .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), затем запустить соответствующий код или сделать меню осведомленным о левый и правый клики. Но ни одна из них не сработала, когда я попытался это сделать.
Заранее спасибо.