无法将NSNamedColorSpace转换为NSDeviceRGBColorSpace?

Bre*_*ret 3 cocoa objective-c

谁能告诉我为什么这colorUsingColorSpaceName会回来nil?例如,以下代码块将打印"deviceColor is nill":

NSColor *color = [NSColor windowBackgroundColor];
NSColor *deviceColor = [color colorUsingColorSpaceName: NSDeviceRGBColorSpace];
if(deviceColor == nil) NSLog(@"deviceColor is nill");
Run Code Online (Sandbox Code Playgroud)

我如何转换的NSColorNSNamedColorSpace?我需要能够获得颜色组件,以便我可以将其转换NSColor为aCGColorRef

Ken*_*Ken 6

将其表示为RGB值太复杂了.当窗口处于活动状态与非活动状态时,它是一个单独的对象.在某些情况下,它也是图案颜色(即平铺图像)而不是平面填充.

  • Bret:使用`[NSColor windowBackgroundColor]`.要为它制作一个CGColor,试试这个:获取它的`patternImage`(并且如果没有RGB转换路径则转到它),从NSImage创建一个CGImage,创建一个绘制CGImage的CGPattern,并创建一个CGColor与CGPattern. (2认同)