Я начинаю возвращаться к разработке Cocoa после того, как ничего не работал в течение нескольких месяцев. Первоначально, когда я начинал, я использовал Snow Leopard и Xcode 3. Сейчас я работаю с Lion с Xcode 4.2 и сталкиваюсь с некоторыми проблемами, с которыми раньше не сталкивался.
Полагаю, это тот факт, что я никогда раньше не использовал ARC, поэтому я уверен, что что-то упустил.
Я пытаюсь создать приложение Statusbar, без главного окна или значка док-станции. Когда я запускаю приложение, значок Statusbar моего приложения появляется на короткое время, примерно на секунду, но затем исчезает.
Вот мой код.
QuickPlusAppDelegate.h
#import <Cocoa/Cocoa.h>
@interface QuickPlusAppDelegate : NSObject <NSApplicationDelegate>
@property (assign) IBOutlet NSWindow *window;
@property (assign) NSStatusItem *statusItem;
@property (weak) IBOutlet NSMenu *statusItemMenu;
@property (strong) NSImage *statusItemIcon;
@property (strong) NSImage *statusItemIconHighlighted;
@property (strong) NSImage *statusItemIconNewNotification;
@end
QuickPlusAppDelegate.m
#import "QuickPlusAppDelegate.h"
@implementation QuickPlusAppDelegate
@synthesize statusItemMenu = _statusItemMenu;
@synthesize window = _window, statusItem = _statusItem;
@synthesize statusItemIcon = _statusItemIcon,
statusItemIconHighlighted = _statusItemIconHighlighted,
statusItemIconNewNotification = _statusItemIconNewNotification;
- (void) awakeFromNib
{
NSBundle *appBundle = [NSBundle mainBundle];
_statusItemIcon = [[NSImage alloc] initWithContentsOfFile:[appBundle pathForResource:@"statusItemIcon" ofType:@"png"]];
_statusItemIconHighlighted = [[NSImage alloc] initWithContentsOfFile:[appBundle pathForResource:@"statusItemIconHighlighted" ofType:@"png"]];
_statusItemIconNewNotification = [[NSImage alloc] initWithContentsOfFile:[appBundle pathForResource:@"statusItemIconNewNotification" ofType:@"png"]];
_statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
[_statusItem setImage:_statusItemIcon];
[_statusItem setAlternateImage:_statusItemIconHighlighted];
[_statusItem setHighlightMode:YES];
}
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// empty
}
@end
Редактировать Если вы видите что-то не так с моим кодом, пожалуйста, дайте мне знать. Я определенно хотел бы немного критики, чтобы я мог поправиться.
Другое редактирование Кажется, что значок Statusbar исчезает при загрузке самого главного окна.