入力として来る色を CGColor に変換したい。来る色がスペース NSCalibratedRGBColorSpace になるまで、すべてが正常に機能しますが、タイプ NSNamedColorSpace (NSSelectedMenuItemColor) の場合、ライオンでは適切な結果が得られません。patternImage も取得しようとしましたが、NSNamedColorSpace の色はその API に応答しません。多くの人がこの問題に直面していると確信しています。できれば親切に助けてください。
変換しようとしているコードの一部
if ([colorSpaceName isEqualToString:NSNamedColorSpace])
{
color = [color colorUsingColorSpace:[NSColorSpace genericRGBColorSpace]];
}
NSColorSpace *colorSpaceNS = [color colorSpace];
colorSpace = [colorSpaceNS CGColorSpace];
size_t numberOfComponents = CGColorSpaceGetNumberOfComponents(colorSpace);
CGFloat components[numberOfComponents];
[color getComponents:components];
requiredColor = CGColorCreate(colorSpace, components);
CGColorSpaceRelease(colorSpace);