返回首页
当前位置: 主页 > Mac开发 > Cocoa >

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

时间:2009-06-11 19:40来源:未知 点击:
如果你用过CoverSutra,那么你一定对它的菜单栏图标有印象。通过在菜单栏画一个心型小图标,你可以在菜单栏控制iTunes的音乐播放和欣赏音乐封面。 要在自己的程序里加入菜单栏图标
  

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

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

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

 

@interface Controller : NSObject

{

NSStatusItem *_statusItem;

}

 

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

 

 

_statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];

 

[_statusItem setImage:[NSImage imageNamed:@"test"]];

 

图标就可以显示出来了。

 

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

 

NSMenu * menu;

 

 

menu = [[NSMenu alloc] initWithTitle:@""];

 

[menu addItemWithTitle:@"Hi" action:@selector(myhikeyEquivalent:@""];

 

[_statusItem setMenu:menu];

 

[menu release];

 

 

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

 

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

 

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

 

 

- (void)dealloc

{

[[NSStatusBar systemStatusBar] removeStatusItem:_statusItem];

[_statusItem release];

[super dealloc];

}

 

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

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

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

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

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

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

 

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

 

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

顶一下
(7)
100%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容