« KB950759を強制的に適用する方法 | メイン | SPEでstringを使ってはいけない »

NSColor のコンポーネントが取得できない

 もうだいぶ放置してある現象で、Karaoke が Mac OS X 10.5 で動かない。


NSColor * c = [NSColor whiteColor];
float r = [c recComponent];

 こんな単純なコードが動かない。
 今日重い腰を上げてドキュメントを読んでみたら、「RGBカラーでなければ例外を投げる」と書いてあった。whiteColor は RGB カラーではなくグレースケールカラーとして定義されているらしい。
 過去のアプリケーションとの互換性低すぎないか?これ。

 ということで、理由は分かったけれどもシステム標準の色からいつでも安全に RGB を得たい場合はどうすればいいんだろう。
 わざわざ変換しなくてはならないとか?
 それともシステムカラーは使えないものとして [NSColor colorWithCalibratedRed:green:blue:] で自力で解決するとか?

トラックバック

このエントリーのトラックバックURL:
http://yoffy.dyndns.org/cgi-bin/mt/mt-tb.cgi/590

コメントを投稿

About

2008年07月27日 16:23に投稿されたエントリーのページです。

ひとつ前の投稿は「KB950759を強制的に適用する方法」です。

次の投稿は「SPEでstringを使ってはいけない」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.37