如果主窗口是通过xib或者storybord加载的,需要在awakeFromNib方法中加载NSStatusItem。在AppDelegate中:
- (void)awakeFromNib
{
[super awakeFromNib];
NSStatusBar *statusBar = [NSStatusBar systemStatusBar];
_statusItem = [statusBar statusItemWithLength:NSVariableStatusItemLength];
// NSImage *image = [NSImage imageNamed:@"statusBarIcon"];
// image.template = YES;
// statusItem.button.image = image;
_statusItem.button.title = @"应用名称";
NSStatusBarButton *button = _statusItem.button;
button.target = self;
button.action = @selector(handleButtonClick:);
}
- (void)handleButtonClick:(id)sender
{
for(NSWindow *window in [NSApplication sharedApplication].windows){
//将窗口移动到其级别的前面
[window orderFrontRegardless];
}
}