[英]How to add icons in os x status bar menus (left from text)
我想在OS X的状态栏菜单文本的左侧添加图标。找不到在我的代码中实现此目的的示例代码。 现在,我正在使用代码来设置状态栏(如下)的图像,并使用IBAction调用AppleScript文件。
- (void)awakeFromNib {
statusItem = [[[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength] retain];
NSBundle *bundle = [NSBundle mainBundle];
statusImage = [[NSImage alloc] initWithContentsOfFile:[bundle pathForResource:@"wifi1" ofType:@"png"]];
statusHighlightImage = [[NSImage alloc] initWithContentsOfFile:[bundle pathForResource:@"wifi2" ofType:@"png"]];
[statusItem setImage:statusImage];
[statusItem setAlternateImage:statusHighlightImage];
[statusItem setMenu:statusMenu];
[statusItem setHighlightMode:YES];
}
- (void)dealloc {
[statusImage release];
[statusHighlightImage release];
[super dealloc];
}
- (IBAction)RemoteAppleEvents:(id)sender {
NSString* path = [[NSBundle mainBundle] pathForResource:@"AppleEvents" ofType:@"scpt"];
NSURL* url = [NSURL fileURLWithPath:path];NSDictionary* errors = [NSDictionary dictionary];
NSAppleScript* appleScript = [[NSAppleScript alloc] initWithContentsOfURL:url error:&errors];
[appleScript executeAndReturnError:nil];
[appleScript release];
}
- (IBAction)InternetSharing:(id)sender {
NSString* path = [[NSBundle mainBundle] pathForResource:@"WiFiShare" ofType:@"scpt"];
NSURL* url = [NSURL fileURLWithPath:path];NSDictionary* errors = [NSDictionary dictionary];
NSAppleScript* appleScript = [[NSAppleScript alloc] initWithContentsOfURL:url error:&errors];
[appleScript executeAndReturnError:nil];
[appleScript release];
}
- (IBAction)BluetoothSharing:(id)sender {
NSString* path = [[NSBundle mainBundle] pathForResource:@"bluetooth" ofType:@"scpt"];
NSURL* url = [NSURL fileURLWithPath:path];NSDictionary* errors = [NSDictionary dictionary];
NSAppleScript* appleScript = [[NSAppleScript alloc] initWithContentsOfURL:url error:&errors];
[appleScript executeAndReturnError:nil];
[appleScript release];
}
任何帮助,将不胜感激。 感谢名单!
UPDATE *
我在IB中的下拉菜单
。
更新的答案:
要在NSMenuitem或NSMenu中设置图标,如下所示:
您只需要将图像添加到项目中,然后在“属性检查器”中设置菜单图像
如果要以编程方式设置图像:
给每个菜单项一个插座,然后使用
setImage:
正如您对状态栏所做的一样
bar = [NSStatusBar systemStatusBar];
statusItem = [bar statusItemWithLength: NSVariableStatusItemLength] ;
statusImage = [NSImage imageNamed:@"status.icns"];
statusHighlightImage = [NSImage imageNamed:@"statusHighLight.icns"];
[statusItem setImage:statusImage];
[statusItem setAlternateImage:statusHighlightImage];
[statusItem setMenu:_statusMenu];
[statusItem setHighlightMode:YES];
menu1Image = [NSImage imageNamed:@"login.icns"];
menu2Image = [NSImage imageNamed:@"persist.icns"];
menu3Image = [NSImage imageNamed:@"thumbIcon_.png"];
[_MenuItem1 setImage:menu1Image];
[_MenuItem2 setImage:menu2Image];
[_MenuItem3 setImage:menu3Image];
我的代码也考虑到了ARC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.