2012-08-03 57 views
2

如何設置NSStatus項目的標題文字顏色的文字顏色?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

哇,嗯。 Objective-C調用AppleScript調用shell腳本。你知道你可以在純Objective-C中做到這一點,對吧?瘋狂的東西叫'NSDateFormatter'... – 2012-08-03 19:05:28

回答

2

將狀態項的歸屬標題設置爲您選擇的屬性字符串。例如。

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

我用我現在使用的代碼更新了我原來的帖子。 – atomikpanda 2012-08-04 03:22:16

+0

@ s0ulp1xel這很奇怪,因爲它在我的電腦上運行得非常好。你有任何崩潰?另外,做一個'NSLog(@「%@」,[timeWSeconds stringValue])'來檢查你是否得到正確的字符串值。 – Vervious 2012-08-04 04:02:20

+0

@ s0ulp1xel只是想知道,你有工作嗎? :) – Vervious 2012-08-05 19:54:27