1

OS X のステータス バー メニュー テキストの左側にアイコンを追加したいと考えています。コードにこれを実装するためのサンプル コードが見つかりません。現在、コードを使用してステータス バー (以下) の画像を設定し、IBActions を使用して 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];
}

どんな助けでも大歓迎です。ありがとう!

アップデート*

IB のドロップダウン メニュー

IB のドロップダウン メニュー.

4

1 に答える 1

2

更新された回答:

NSMenuitem または NSMenu でアイコンを設定するには、次のようにします。

ここに画像の説明を入力

プロジェクトに画像を追加し、「属性インスペクター」でメニュー画像を設定するだけです。

ここに画像の説明を入力

プログラムでイメージを設定する場合:

各メニュー項目にアウトレットを与えてから、

セットイメージ:

ステータスバーに対して行ったように

 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を考慮しています

于 2013-10-07T12:34:21.620 に答える