macOS/iOS API解説

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。2010年代に書かれた内容です。今後更新はありません。

目次

NSColorクラス

INDEX>AppKit>NSColor

カラーオブジェクトクラス

解説

カラーを保持するオブジェクトのクラスです。

継承 NSObject
準拠 NSCoding
  NSCopying
  NSObject (NSObject)
フレームワーク /System/Library/Frameworks/AppKit.framework
使用可能 Mac OS X v10.0 以降
定義 NSColor.h

developer.apple.com

概要

NSColorクラスオブジェクトは色を提供します。それはカラースペースで定義されそれぞれの独自の色定義の部分のセットを持っています。(赤、緑、青)
NSColorオブジェクトは色と場合によっては透明度(アルファ)表現します。

NSColorインスタンスsetメッセージを送信することで現在の描画コンテキストにカラーをセットします。

カラーをセットするとは、それ以降のグラフィックスの描画はNSColorのインスタンスで色が表現されるということです。

NSColorオブジェクトの個々のカラースペースのコンポーネントに関連しないアクセッサメソッドは無効です。


たとえば、redComponentやgetRed:green:blue:alpha:のようなメソッドは、キャリブレートされたまたはRGBカラースペースのカラーオブジェクト上で動きます。

CMYKカラースペースでNSColorにそのようなメッセージを送信したとき、例外が発行されます。
さらに、 getComponents: や numberOfComponents メソッドは特定のコンポーネントを持つカラースペースで動きます。

従ってNSColorSpaceオブジェクトベースまたは指定されたカラースペースであろうかどうかにかかわらずとにかく個々の浮動小数点数値としてNSColorオブジェクトのコンポーネントを返します。

しかしながら、 redComponent や getRed:green:blue:alpha: のような古いコンポーネントメソッドは名前付きのカラースペース上のNSColorオブジェクトベースだけに有効です。
もし不明のカラースペースのNSColorオブジェクトを持ったり、それらのコンポーネントを抽出したいなら、それらのカラースペースのコンポーネントアクセッサメソッドを使う前に最初に知られたカラースペースに変換しなければなりません。

作成

Objective-C
colorWith... や colorUsing... メソッドを使います。
プリセットカラー: blackColor, blueColor など

Swift

クラス

NSColor

使用可能

10.0

参照

クラスメソッド

コンポーネント値でNSColorオブジェクトの作成

init(calibratedHue:saturation:brightness:alpha:)
  HSBとアルファでNSColorを作って返します 10.0-
init(calibratedRed red:green:blue:alpha:)
  RGBとアルファでNSColorを作って返します 10.0-
init(calibratedWhite white:alpha:)
  グレースケールカラーを作って返します 10.0-
colorWithCatalogName:colorName:
 カタログ名とカラー名でカラーを作って返します 10.0-
colorWithDeviceCyan:magenta:yellow:black:alpha:
 CMYKとアルファでカラーを作って返します
colorWithDeviceHue:saturation:brightness:alpha:
 HSBとアルファでNSColorを作って返します
colorWithDeviceRed:green:blue:alpha:
colorWithDeviceWhite:alpha:
colorWithCIColor:
colorWithColorSpace:components:count:
colorWithSRGBRed:green:blue:alpha:
colorWithGenericGamma22White:alpha:
 GenericGamma22カラースペース上で指定された白黒値とアルファ値でNSColorを作って返します。

colorWithHue:saturation:brightness:alpha:
colorWithRed:green:blue:alpha:
colorWithWhite:alpha:

インスタンスメソッド

■パターン画像で使う
colorWithPatternImage
patternImage

■システムカラーを作成するユーザー初期設定によって指定された値のNSColor
alternateSelectedControlColor
alternateSelectedControlTextColor
colorForControlTint
controlBackgroundColor
controlColor
+ controlAlternatingRowBackgroundColors
controlHighlightColor
controlLightHighlightColor
controlShadowColor
controlDarkShadowColor
controlTextColor
+ currentControlTint
disabledControlTextColor
gridColor
headerColor
headerTextColor
highlightColor
+ keyboardFocusIndicatorColor
+ knobColor
+ scrollBarColor [廃止]
secondarySelectedControlColor
+ selectedControlColor
+ selectedControlTextColor
selectedMenuItemColor
selectedMenuItemTextColor
selectedTextBackgroundColor
selectedTextColor
+ selectedKnobColor
shadowColor
textBackgroundColor
textColor
windowBackgroundColor
windowFrameColor
windowFrameTextColor

■アルファコンポーネントを無視する
ignoresAlpha
setIgnoresAlpha:

■コピーとペースト
colorFromPasteboard:
– writeToPasteboard:

コンポーネントにセットした値の取得
– getCyan:magenta:yellow:black:alpha:
– getHue:saturation:brightness:alpha:
– getRed:green:blue:alpha:
– getWhite:alpha:
– getComponents:
– numberOfComponents

■単独のコンポーネント値の取得
– alphaComponent
– blackComponent
– blueComponent
– brightnessComponent
– catalogNameComponent
– colorNameComponent
– cyanComponent
– greenComponent
– hueComponent
– localizedCatalogNameComponent
– localizedColorNameComponent
– magentaComponent
– redComponent
– saturationComponent
– whiteComponent
– yellowComponent

■カラースペースで動く
– colorSpaceName
– colorUsingColorSpaceName:
– colorUsingColorSpaceName:device:
– colorSpace
– colorUsingColorSpace:

■色の変更
– blendedColorWithFraction:ofColor:
– colorWithAlphaComponent:
– highlightWithLevel:
– shadowWithLevel:

■描画
– drawSwatchInRect:
– set
– setFill
– setStroke