Какао: щелкните правой кнопкой мыши NSStatusItem

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

Заранее благодарим.

9
задан Jonathan. 22 February 2012 в 22:41
поделиться