Archive for the 'NSColorList' Category

2012/12/28 AppleScriptObjCでボタンの文字色を変更

最初はAppleScriptObjCでWindowのタイトルの文字色を変更できないか試していたのですが、それが(かなり組まないと)ムリだと気付き……逆に、簡単に文字色を変更できるGUI部品がないかテストした試作品です。

NSAttributedStringがどのGUI部品に対して設定可能なのか、APIのドキュメントをキーワード検索して調べました。

coloredb.png

NSTextFieldの中身は当然として、NSButtonのほかNSMenuの内容などに色つき文字(NSAttributedString)を指定できることが分り、とりあえず調査はこのぐらいにしておきました。試作プロジェクトの「WindowTitleTest」はWindowのタイトル色を変更できないか試していた頃の名残りです。

→ Xcodeプロジェクトのダウンロード

AppleScriptObjCファイル名:AppDelegate.applescript

– AppDelegate.applescript
– windowTitleTest

– Created by Takaaki Naganoya on 2012/12/25.
– Copyright (c) 2012年 Takaaki Naganoya. All rights reserved.
– original http://www.macscripter.net/viewtopic.php?id=38088

script AppDelegate
  
  property parent : class “NSObject”
  
  property nsc : class “NSColor”
  
  property tf : missing value
  
property aWin : missing value
  
property aButton : missing value
  
  
  on applicationWillFinishLaunching_(aNotification)
    
    –set colorArray to current application’s NSArray’s arrayWithObjects_(nsc’s redColor(),nsc’s orangeColor(),nsc’s yellowColor(),nsc’s greenColor(),nsc’s blueColor,nsc’s purpleColor(),missing value)
    
    
    tell current application’s NSColorList to set AppleColors to colorListNamed_(“Apple”)
    
set redColor to AppleColors’s colorWithKey_(“Red”)
    
tell current application’s NSFont to set myFont to fontWithName_size_(“HiraKakuPro-W6″, 24)
    
    set attrsDict to current application’s NSDictionary’s dictionaryWithObjects_forKeys_({myFont, redColor}, {current application’s NSFontAttributeName, current application’s NSForegroundColorAttributeName})
    
tell current application’s NSAttributedString to set aString to alloc()’s initWithString_attributes_(“色つき文字を設定できるGUI部品のテスト”, attrsDict)
    
    
    tf’s setAttributedStringValue_(aString) –NSTextField
    
aButton’s setAttributedTitle_(aString) –NSButton
    
  end applicationWillFinishLaunching_
  
  
  on applicationShouldTerminate_(sender)
    – Insert code here to do any housekeeping before your application quits
    
return current application’s NSTerminateNow
  end applicationShouldTerminate_
  
end script

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に