カラーパネル

ここでは、カラーパネルの使い方をメモする。

アプリケーションを普通に作ると、消さない限りデフォルトでメニューに Format -> Show Colors という項目があり、それを選ぶと、カラーパネルが現れる。それ以外にも、Color Well というパーツを配置すると、クリックしたときに現れる。

パネルで色を変えたとき情報を得るには、changeColor(sender) という delegate メソッドを使う。

def changeColor(sender)

end

この sender がパネルなので、これに color というメソッドで色情報を得る。

def changeColor(sender)

colorInfo = sender.color

end

これ以外にも、上の Color Well を outlet と結びつけて、それから情報を得ることもできる。例えば、colorWell という outlet にした場合は、

ib_outlets :colorWell

colorInfo = @colorWell.color

とする。

パネルで色を変えたときに得られる情報は、次のオブジェクトになる。

NSCalibratedRGBColor

NSCalibratedWhiteColor

NSCachedRGBColor

NSDeviceRGBColor

これらは、パネルの種類によって変わる。このページの最後にそれぞれどれから得られるかをのせておく。

ただ、これ、そのまま NSColor として使う分にはいいけど、色要素に分けて情報をを得たいときなどは、Color Space を変換しろ、というエラーがでて情報にアクセスできない場合がある。そういうときは、colorUsingColorSpaceName(colorSpaceName) という NSColor のメソッドを使って、Color Space を変換する。

fontColor = colorInfo.colorUsingColorSpaceName(NSCalibratedRGBColorSpace)

Color Space Name には次のものがある。必要に応じてこれらを使い分ける。

NSCalibratedWhiteColorSpace

NSCalibratedBlackColorSpace

NSCalibratedRGBColorSpace

NSDeviceWhiteColorSpace

NSDeviceBlackColorSpace

NSDeviceRGBColorSpace

NSDeviceCMYKColorSpace

NSNamedColorSpace

NSPatternColorSpace

NSCustomColorSpace

NSCalibratedRGBColor

NSCalibratedWhiteColor

NSCachedRGBColor

NSDeviceRGBColor