Я пытаюсь сделать простое приложение только для строки меню на xcode 4. Все на самом деле работает, но я не понимаю, что значок появляется дважды в строке меню. Один из двух значков фактически работает и предоставляет раскрывающееся меню с рабочими кнопками, другой просто переключается на подсвеченные изображения значков при нажатии и возвращается обратно после отпускания, ничего не делая, даже не появляется раскрывающееся меню.
Это код, который я нашел и протестировал:
- (void) awakeFromNib{
//Create the NSStatusBar and set its length
statusItem = [[[NSStatusBar systemStatusBar] statusItemWithLength:NSSquareStatusItemLength] retain];
//Used to detect where the files are
NSBundle *bundle = [NSBundle mainBundle];
//Allocates and loads the images into the application which will be used for the NSStatusItem
statusImage = [[NSImage alloc] initWithContentsOfFile:[bundle pathForResource:@"icon" ofType:@"png"]];
statusHighlightImage = [[NSImage alloc] initWithContentsOfFile:[bundle pathForResource:@"icon-alt" ofType:@"png"]];
//Sets the images in the NSStatusItem
[statusItem setImage:statusImage];
[statusItem setAlternateImage:statusHighlightImage];
//Tells the NSStatusItem what menu to load
[statusItem setMenu:statusMenu];
//Sets the mouse over text
[statusItem setToolTip:@"My Custom Menu Item"];
//Enables highlighting
[statusItem setHighlightMode:YES];
затем отпустите изображения
- (void) dealloc {
//Releases the 2 images we loaded into memory
[statusImage release];
[statusHighlightImage release];
[super dealloc];
и заголовочный файл:
@interface MenuletApp : NSObject <NSApplicationDelegate> {
NSWindow *window;
IBOutlet NSMenu *statusMenu;
NSStatusItem *statusItem;
NSImage *statusImage;
NSImage *statusHighlightImage;
с IBAction для регистрации Hello World при нажатии одного из элементов и для завершения при нажатии другого элемента.
Я использовал учебник, предназначенный для XCode 3, поэтому может случиться так, что один из шагов сделан по-другому, но, глядя на код, я понятия не имею, где создается второй элемент статуса.
Спасибо за помощь.