カラーパネル
ここでは、カラーパネルの使い方をメモする。
アプリケーションを普通に作ると、消さない限りデフォルトでメニューに 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