mar*_*nte 9

为用户高亮颜色的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);
    }
Run Code Online (Sandbox Code Playgroud)

请参阅" 颜色编程主题"中的 " 创建和转换颜色空间"部分

这将让您更多地了解这是如何工作的,并找出颜色有多少组件.


cac*_*cau 4

您可以使用类上的方法NSColor来获取用户的首选项。

\n\n

颜色编程主题中的访问系统颜色部分指出

\n\n
\n

NSColor 有许多返回系统颜色的方法:由用户首选项控制的颜色。这些颜色\xe2\x80\x94 目前仅\n selectedControlColorselectedTextBackgroundColor\xe2\x80\x94 应该由想要创建自定义控件或子类化现有控件同时尊重用户的颜色首选项的\n 开发人员使用。

\n
\n