Темный режим: NSColor.colorNamed не возвращает правильный цвет в определенных методах
У меня вообще работает colorNamed, но я пытаюсь вызвать его изнутри NSTableViewRow.drawSeparatorInRect:
и он всегда возвращает цвет в светлом виде, даже если система находится в темном режиме.
- (void)drawSeparatorInRect:(NSRect)dirtyRect {
[[NSColor colorNamed:@"ColorTransactionsGridLine"] set];
...
}
Не могу понять почему colorNamed
не работает в этом случае. Есть идеи?
Благодарю.
2 ответа
Я понял это. Оказывается, что родительское представление имеет жестко запрограммированный вид, поэтому подпредставление наследует этот вид, а не системный. После изменения внешнего вида на "наследовать" в родительском представлении (ях), colorNamed
возвращает правильный цвет.
Попробуйте добавить это перед кодом рисования:
NSAppearance.currentAppearance = self.effectiveAppearance;
Или, в качестве диагностической меры, установите точку останова в своем коде чертежа и проверьте состояние этих свойств в отладчике.