我正在使用Cocoa / Objective-C设计一个类似于表的控件。由于我想在Mac上模拟Finder的外观,因此在绘制表格时会检索系统颜色。
特别是,对表行使用[NSColor controlAlternatingRowBackgroundColors]
,在我看来这看起来相当不错。但是,当谈到表头时,我遇到了一些问题:
[NSColor headerTextColor]
会产生一种黑色(这对我来说很好,因为Finder的标题标题也是黑色的),但我希望[NSColor headerColor]
能够产生一种颜色与文本相对应可以很好地阅读。但是,[NSColor headerColor]
会产生一种非常深的灰色 - 显然与Finder的标题颜色不同。
那么,headerColor
变暗是否正常? Finder如何确定其标题颜色(这是否记录在案)?
答案 0 :(得分:1)
在Mac OS X 10.0之前,Finder中的表视图标题不是纯色。首先,它们是“可舔”的Aqua蓝色(或白色,未选择的)渐变,然后随着时间的推移它们变得有点平淡,自从Yosemite(10.10)以来,它们已经使用了模糊的半透明效果,开发人员可以将其视为NSVisualEffectView
。
在任何情况下,headerColor
和其他几种NSColor
系统颜色(如gridColor
)都不能反映当前的用户界面设计。关于弃用方法,在文档中提到哪些颜色仍用于什么,或两者兼而有之,可能值filing a bug to Apple。
如果你想要与Finder匹配的标题,并且你没有使用NSTableView
(免费获取它们),NSVisualEffectView
可能就是你想要的。