将customView添加到NSStatusItem

时间:2011-10-14 16:18:52

标签: xcode cocoa

我想创建一个具有非菜单样式的状态栏应用程序。和Facebook的FaceTab一样(我的意思是只有界面,不起作用)......这是我的代码:

-(void)awakeFromNib{
    statusItem = [[[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength] retain];
    [statusItem setView:customView];
    //[statusItem setMenu:menu];
    [statusItem setTitle:@"Status"];
    [statusItem setHighlightMode:YES];
}

..... 所以一旦我使用NSMenu一切正常,但当我使用NSView和CustomView插座时,菜单栏上没有任何内容。帮助PLZ!

2 个答案:

答案 0 :(得分:3)

涉及到几个活动部分,所以我能给出的最好的建议是从Vadim Shpakovski看看这个优秀的example project

答案 1 :(得分:0)

在awakeFromNib方法结束时,您可能需要在statusItem上调用retain,以使其不会超出范围。我正在努力解决同样的问题,并添加[statusItem retain];修复它,以便我现在在Mac OS状态栏中看到我的状态菜单。

-(void)awakeFromNib{
    statusItem = [[[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength] retain];
    [statusItem setView:customView];

    // in my code, this is uncommented, and menu is an instance variable.
    //[statusItem setMenu:menu];

    [statusItem setTitle:@"Status"];
    [statusItem setHighlightMode:YES];

    // this was needed to get the icon to display in the status bar.
    [statusItem retain];
}