2016-08-22 77 views
1

我正在設計一個使用Cocoa/Objective-C的表格式控件。由於我想在Mac上模擬Finder的外觀,因此在繪製我的表格時我會檢索系統顏色。Mac OS X Finder如何確定標題顏色?

特別是,對錶格行使用[NSColor controlAlternatingRowBackgroundColors],在我看來這看起來相當不錯。然而,當涉及表頭時,我有一些問題:

[NSColor headerTextColor]產生黑色(這對我來說很好,因爲Finder的標題標題也是黑色的),但我期望[NSColor headerColor]產生一種顏色對此文本可以很好地閱讀。但是,[NSColor headerColor]會產生非常暗的灰色 - 顯然與Finder的標題顏色不同。

那麼,headerColor是否正常? Finder如何確定其標題顏色(這是甚至記錄在案)?

回答

1

因爲在Mac OS X 10.0之前,Finder中的表格視圖標題並不是純色。首先,它們是「可舔」Aqua藍色(或白色,未選定)漸變色,隨後隨着時間的推移它們變得更加平坦一些。自從優勝美地(10.10)以來,它們已經使用了模糊的半透明效果,否則開發者可以使用這種效果作爲NSVisualEffectView

在任何情況下,headerColor和其他幾個NSColor系統顏色(如gridColor)都不反映當前的UI設計。這可能值得filing a bug to Apple關於方法的棄用,在文檔中提到哪些顏色仍然用於什麼,或兩者。

如果您需要與Finder匹配的標頭,並且您沒有使用NSTableView(可以免費獲取它們),那麼NSVisualEffectView可能就是您想要的。