在一个基于文档的项目中,我正在尝试创建一个状态菜单。如您所见,我有一个构建状态栏的单例类,并且我从应用程序委托启动它。当我运行它时,我没有收到任何错误,但只有状态栏的图像,但没有下拉菜单。我在 IB 中创建了菜单。我在搞砸什么?
代表
#import "KBAppDelegate.h"
#import "KBStatusMenu.h"
@implementation KBAppDelegate
@synthesize window = _window;
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
KBStatusMenu *aStatusItem = [[KBStatusMenu alloc] init];
aStatusItem = [[KBStatusMenu instance] buildStatusItem];
}
@end
。H
#import <Foundation/Foundation.h>
@interface KBStatusMenu : NSObject
{
NSStatusItem *myStatusItem;
NSImage *statusImage;
IBOutlet NSMenu *myStatusMenu;
}
+ (KBStatusMenu *)instance;
- (id)buildStatusItem;
@end
.m
#import "KBStatusMenu.h"
@implementation KBStatusMenu
static KBStatusMenu *gInstance = nil;
+ (KBStatusMenu *)instance
{
@synchronized(self) {
if (gInstance == nil)
gInstance = [[self alloc] init];
}
return(gInstance);
}
- (id)buildStatusItem
{
myStatusItem = [[[NSStatusBar systemStatusBar] statusItemWithLength:NSSquareStatusItemLength] retain];
statusImage = [NSImage imageNamed:@"statusNormTemplate.png"];
[myStatusItem setImage:statusImage];
[myStatusItem setHighlightMode:YES];
[myStatusItem setMenu:myStatusMenu];
return myStatusItem;
}
@end