2

colorNamed 通常对我有用,但是,我试图将它称为 inside NSTableViewRow.drawSeparatorInRect:,即使系统处于暗模式,它也总是以浅色外观返回颜色。

- (void)drawSeparatorInRect:(NSRect)dirtyRect { [[NSColor colorNamed:@"ColorTransactionsGridLine"] set]; ... }

我不知道为什么colorNamed在这种情况下不起作用。有任何想法吗?

谢谢。

4

2 回答 2

1

我想出了这个。原来父视图具有硬编码的外观,因此子视图继承该外观而不是系统的外观。在父视图中将外观更改为“继承”后,colorNamed返回正确的颜色。

于 2018-11-05T18:04:35.497 回答
0

Try adding this before your drawing code:

 NSAppearance.currentAppearance = self.effectiveAppearance;

Or, as a diagnostic measure, set a breakpoint in your drawing code and check the status of these properties in the debugger.

于 2018-11-04T17:33:46.857 回答