我希望使用Cocoa的颜色值:
感谢。
答案 0 :(得分:8)
用户的NSColor突出显示颜色将是控件颜色 selectedControlColor
据我所知,您首先必须将selectedControlColor转换为已知的颜色空间,因为它不是基于NSNamedColorSpace。
NSNamedColorSpace =目录名称和颜色名称组件 此颜色空间的组件是准备颜色的列表或目录的索引。命名颜色的目录附带 能够在给定的上生成正确颜色的查找表 设备
一般情况下,建议您使用校准(或通用) 颜色空间而不是设备颜色空间。设备中的颜色 颜色空间可能因设备而异,但经过校准 颜色空间通常会产生相当准确的颜色。设备 另一方面,色彩空间可能会产生更好的性能 在某些情况下,如果您确定知道该设备将会 渲染或捕捉颜色,改为使用设备颜色空间。
代码示例
NSColor *aColor = [[NSColor selectedControlColor] colorUsingColorSpaceName:NSCalibratedRGBColorSpace];
if (aColor) {
NSLog(@" Red %f, Green %f, Blue %f, Alpha %f,", aColor.redComponent,aColor.greenComponent,aColor.blueComponent,aColor.alphaComponent);
}
请参阅Creating and Converting Color Spaces section in the Color Programming Topics
这将让您更多地了解这是如何工作的,并找出颜色有多少组件。
答案 1 :(得分:4)
您可以使用NSColor
类上的方法来获取用户的偏好。
Accessing System Colors 中的 Color Programming Topics 部分指出
NSColor有许多返回系统颜色的方法:颜色 由用户偏好控制。这些颜色 - 目前只有
selectedControlColor
和selectedTextBackgroundColor
- 应该被使用 想要创建自定义控件或子类的开发人员 控制,同时尊重用户的颜色偏好。