iPhoneOS3.0の発表でiPhoneアプリデベロッパの方はwktkしてる所でしょうが、昨日、初めて知った小ネタエントリ。
Mac上の色をアプリで使いたい
僕はちょくちょく、「このサイトのここの色をアプリに使いたいなぁ」とか思ってアプリに反映させたりしています。
その時にDigitalColor Meterというアプリを使っています。
マウスカーソルの位置のカラーコードを表示してくれるツールでしてMacにデフォルトで入っているアプリです。
/Applications/Utilities/DigitalColor\ Meter.app
このアプリを使ってShift+Cmd+Cとかしてテキスト形式でコピーしたカラーコードをXcodeに貼り付けて、255.0 で割ったりする感じにコードを書いていました。
色を再現できると言う意味でこのアプリは便利なのですが、コードにするのが微妙に怠かったりしました。
こんな機能がついてたのかよ
そこでふと環境設定を見てみると面白そうな設定がありました。
上の環境設定をOnにして
ウインドウ真ん中の小窓をクリックするとペーストボードに
[NSColor colorWithDeviceRed:0.043137 green:0.062745 blue:0.137255 alpha:1.0]
という形式で取り込まれます。
おお! これって完全にプログラマ向けじゃないですか!
iPhone開発に使う
でも、このままだとiPhone開発では使えないのでこんなダサイRubyで修正
#!/usr/bin/env ruby print `pbpaste`.sub(/NSColor/, "UIColor").sub(/colorWithDeviceRed/, "colorWithRed")
これを実行すると下のようなUIColorのクラスメソッドに置換します。
[UIColor colorWithRed:0.043137 green:0.062745 blue:0.137255 alpha:1.0]
上記スクリプトをそのままTerminal.appやQuickSilverから実行しても標準出力に書き出されるだけで使えません。
あのようにprintにしているのはXcodeで実行することを想定しています。
Xcodeのスクリプトメニュー
Xcodeのメニューバーの右の方に巻物のようなアイコン*1があります。
ここにはデフォルトでも様々なスクリプトが入っています。
以前書いたコメントアウトのショートカットキーもこの中のコメントアウトスクリプト*2が実行されているんです。
見てもらえばわかりますが、スクリプトメニューにはシェルスクリプト、Perl、Python、Ruby、AppleScript、Automatorのワークフローなんかも
突っ込んで実行可能です。
ショートカットキーも設定可能です。
ぶちこむ
ということで上記Rubyスクリプトをスクリプトメニューに登録してみます。
スクリプトメニュー内の「ユーザスクリプトを編集」をクリック。
プラスボタンから「新規シェルスクリプト」をクリック。
お好みの名前を付けます。
テーブルの右側の「入力」を”選択部分”にする。
「ディレクトリ」を”ホームディレクトリ”にする。
「出力」を”選択部分の後に挿入”にする。
「エラー」を”警告に表示”にします。
テキストエリアに先ほどのRubyスクリプトをコピペ。
上のスクショのように任意のショートカットキーを設定してみたりも良いかもしれません。
これでサクッとDigitalColor Meterで得たコードをXcodeに貼り付けられるようになります。