2014-03-19 72 views

回答

3

您可以使用在NSColor類的方法來獲取用戶的喜好。

Color Programming TopicsAccessing System Colors部指出

NSColor具有多個返回系統顏色方法:由用戶偏好控制顏色 。這些顏色 - 當前只有 selectedControlColorselectedTextBackgroundColor - 應該由 開發人員使用,他們想要在遵守用戶顏色首選項的同時創建自定義控件或繼承現有 控件。

7

的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

,這將給你是如何工作的,並找到一個顏色多少分量有更多的想法。

+0

這給了我一個淡藍色的,這似乎是「高亮顏色」系統偏好設置>常規下顯示的內容。我正在尋找出現在「外觀」下的藍/石墨,這是一種顏色,例如,表格視圖單元格在選擇時突出顯示。 –

+0

您需要閱讀文檔以查看它是否可用 – markhunte

+0

我找到了它:'selectedMenuItemColor'。 https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSColor_Class/index.html#//apple_ref/occ/clm/NSColor/selectedControlColor –

相關問題