我想转换任何颜色来作为CGColor的输入。在comming colour为空格NSCalibratedRGBColorSpace之前,一切运行正常,但是当它是NSNamedColorSpace (NSSelectedMenuItemColor)类型时,它不会在lion中产生正确的结果。我也尝试过获取patternImage,但NSNamedColorSpace colours不响应该接口。我相信很多人都遇到过这个问题,如果可以的话,请帮助我。
我试图隐藏的代码的一部分
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);发布于 2013-12-03 15:42:54
最简单的方法(OS X 10.8或更高版本):
if ([colorSpaceName isEqualToString:NSNamedColorSpace])
{
color = [color colorUsingColorSpace:[NSColorSpace genericRGBColorSpace]];
}
requiredColor = [color CGColor];第二种方式(OS X 10.0或更高版本):
if ([colorSpaceName isEqualToString:NSNamedColorSpace]) {
color = [color colorUsingColorSpace:[NSColorSpace genericRGBColorSpace]];
}
CGFloat red, green, blue, alpha;
[color getRed:&red green:&green blue:&blue alpha:&alpha];
requiredColor = CGColorCreateGenericRGB(red, green, blue, alpha);https://stackoverflow.com/questions/18910772
复制相似问题