Правильный способ установки цели / действия для NSMenuItem в Какао?

У меня серьезные трудности с начальным программированием Какао, которое я выполняю.

По сути, у меня есть элемент NSStatusBar с NSMenu , прикрепленным как меню. В меню есть единственный NMMenuItem . В IB я подключил NSMenuItem к NSObject , который сам настроен на класс ApplicationDelegate; Затем я установил полученные действия в метод IBAction в ApplicationDelegate. Я думаю, все подключено правильно, кроме тех случаев, когда я запускаю программу и нажимаю пункт меню, метод IBAction не вызывается. Я действительно не могу с этим справиться. Вот соответствующий код.

Файл h делегата приложения:

#import <Cocoa/Cocoa.h>

@interface sssAppDelegate : NSObject <NSApplicationDelegate> {
    IBOutlet NSMenu *statusMenu;
    NSStatusItem *statusItem;
}

- (IBAction)showPreferencePanel:(id)sender;

@end

Файл m делегата приложения:

#import "sssAppDelegate.h"
@implementation sssAppDelegate

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    // Insert code here to initialize your application 
}

-(void)awakeFromNib{
    statusItem = [[[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength] retain];
    [statusItem setMenu:statusMenu];
    [statusItem setTitle:@"Status"];
    [statusItem setHighlightMode:YES];
}


- (IBAction)showPreferencePanel:(id)sender {
    NSLog(@"Hello World!");
}

@end 

Как я уже сказал, в IB я подключил NSMenu к statusMenu в Application Delegate (таким образом, все меню отображается под NSStatusBar ), и я подключил NSMenuItem в NSMenu к NSObject с классом Application Delegate и подключил его для вызова showPreferencePanel, но при запуске ничего не происходит !!! ---> Основной элемент (настройки)

7
задан Edwardr 6 March 2011 в 11:40
поделиться