繁体   English   中英

如何在OS X状态栏菜单中添加图标(文本左侧)

[英]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中的下拉菜单

我在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM