У меня серьезные трудности с начальным программированием Какао, которое я выполняю.
По сути, у меня есть элемент 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, но при запуске ничего не происходит !!! ---> Основной элемент (настройки)