colorNamed通常对我有用,但是,我试图在NSTableViewRow.drawSeparatorInRect:
内部调用它,即使系统处于暗模式,它也总是以浅色外观返回颜色。
- (void)drawSeparatorInRect:(NSRect)dirtyRect {
[[NSColor colorNamed:@"ColorTransactionsGridLine"] set];
...
}
我不知道为什么colorNamed
在这种情况下不起作用。有什么想法吗?
谢谢。
答案 0 :(得分:1)
我想出了这个。事实证明,父视图具有硬编码的外观,因此子视图继承了该外观,而不是系统的外观。在父视图中将外观更改为“继承”后,colorNamed
返回正确的颜色。
答案 1 :(得分:0)
尝试在绘图代码之前添加它:
NSAppearance.currentAppearance = self.effectiveAppearance;
或者,作为诊断措施,在图形代码中设置一个断点,并在调试器中检查这些属性的状态。