设置NSStatus项的标题文本颜色

时间:2012-08-03 18:28:03

标签: objective-c macos cocoa colors nscolor

如何设置NSStatus项目标题文字颜色的文字颜色?

这是我用来设置statusItem:

NSAppleScript *script = [[NSAppleScript alloc] initWithSource:@"set the timeWSeconds to do shell script \"/bin/date '+%a %b %I:%M:%S %p'\""];


    NSAppleEventDescriptor *timeWSeconds = [[script executeAndReturnError:nil]stringValue];
    [statusItem setTitle:timeWSeconds];

好的,我已经尝试了@Vervious的帖子,这就是我所拥有的,没有任何改变。

-(IBAction)timeWSeconds:(id)sender
{
    NSAppleScript *script = [[NSAppleScript alloc] initWithSource:@"set the timeWSeconds to do shell script \"/bin/date '+%a %b %d %I:%M:%S %p'\""];


    NSAppleEventDescriptor *timeWSeconds = [[script executeAndReturnError:nil]stringValue];
    [statusItem setTitle:timeWSeconds];

    NSDictionary *attributes = [NSDictionary
                                dictionaryWithObjectsAndKeys:
                                [NSColor redColor], NSForegroundColorAttributeName, nil];
    NSAttributedString *colouredTitle = [[[NSAttributedString alloc]
                                         initWithString:[timeWSeconds stringValue]]
attributes:attributes];
    [statusItem setAttributedTitle:colouredTitle];

}

1 个答案:

答案 0 :(得分:2)

将状态项的属性标题设置为您选择的属性字符串。 E.g。

NSDictionary *attributes = [NSDictionary
                            dictionaryWithObjectsAndKeys:
                            [NSColor redColor], NSForegroundColorAttributeName, nil];
NSAttributedString *colouredTitle = [[NSAttributedString alloc] 
             initWithString:[timeWSeconds stringValue]]
             attributes:attributes];
[statusItem setAttributedTitle:colouredTitle];