2016-08-22 37 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可能就是您想要的。