Темный режим: NSColor.colorNamed не возвращает правильный цвет в определенных методах - PullRequest
0 голосов
/ 04 ноября 2018

colorNamed обычно работает для меня, однако я пытаюсь вызвать его внутри NSTableViewRow.drawSeparatorInRect:, и он всегда возвращает цвет в светлом виде, даже если система находится в темном режиме.

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

Я не могу понять, почему colorNamed не работает в этом случае. Есть идеи?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Я понял это. Оказывается, родительский вид имеет жестко запрограммированный вид, поэтому подпредставление наследует этот вид, а не системный. После изменения внешнего вида на «наследовать» в родительских представлениях colorNamed возвращает правильный цвет.

0 голосов
/ 04 ноября 2018

Попробуйте добавить это перед кодом рисования:

 NSAppearance.currentAppearance = self.effectiveAppearance;

Или, в качестве диагностической меры, установите точку останова в коде чертежа и проверьте состояние этих свойств в отладчике.

...