海神


Cocoa教学:如何在菜单栏显示图标及菜单

2011-10-11
#cocoa

原文:http://www.cocoachina.com/b/?p=164

如果你用过CoverSutra,那么你一定对它的菜单栏图标有印象。通过在菜单栏画一个心型小图标,你可以在菜单栏控制iTunes的音乐播放和欣赏音乐封面。

要在自己的程序里加入菜单栏图标,其实也很简单。

你要做的仅仅是在程序里添加一个NSStatusItem,比如这样:

@interface Controller : NSObject { NSStatusItem*_statusItem;

}

在希望显示图标的位置加入如下代码:

_statusItem = [[NSStatusBarsystemStatusBar]statusItemWithLength:NSVariableStatusItemLength];

[_statusItemsetImage:[NSImageimageNamed:@"test"]];

图标就可以显示出来了。

如果希望点击图标后显示菜单,你可以手工创建一个菜单:

 

NSMenu* menu;

menu = [[NSMenualloc] initWithTitle:@""];

[menu addItemWithTitle:@"Hi"action:@selector(myhi) keyEquivalent:@""];

[_statusItemsetMenu:menu];

[menu release];

这里假设myhi是你自己程序中的一个方法。

这样,你的菜单栏图标就有一个菜单了。你也可以使用addItemWithTitle方法添加更多的菜单。

在程序退出的时候,记得把图标释放:

- (void)dealloc

{

[[NSStatusBarsystemStatusBar] removeStatusItem:_statusItem];

[_statusItemrelease];

[superdealloc];

}

菜单栏图标还有一些其他的属性,你可以进行设置,比如:

alternateImage: 点击后显示的图标。如果设置了这个属性,点击图标后可以显示另外一幅图片。

highlightMode: 点击图标后是否高亮。

title: 如果设置title属性,将会在图标后面显示文字。

length: 图标在菜单栏占的长度。设置为-1使用图片的默认长度。

toolTip:鼠标指到图标上显示的工具提示。

其他的属性你可以自己摸索。

Pal Kim写了一个非常好而且极为简单的例子,你可以在这里下载。


blog comments powered by Disqus