Я вижу, что некоторые из моих элементов пользовательского интерфейса выглядят странно при использовании темного режима в Mac OS 10.14 . В документации предлагается использовать семантические цвета.Это работает хорошо для большинства случаев.
Но для controlAlternatingRowBackgroundColors
я получаю странные значения.Следующая процедура печатает значения RGB цветов в 2-элементном цветовом массиве:
void OutputColors(NSArray* anscolor) {
assert(2==[anscolor count]);
for (NSColor* nscolor in anscolor) {
NSColor* nscolorRGB = [nscolor colorUsingColorSpace:[NSColorSpace genericRGBColorSpace]];
assert(nscolorRGB); // assert that conversion worked
NSLog(@"%f %f %f", [nscolorRGB redComponent], [nscolorRGB greenComponent], [nscolorRGB blueComponent]);
}
}
Поскольку документация гласит, что controlAlternatingRowBackgroundColors
устарела и заменена на alternatingContentBackgroundColors
, Iпопробовал оба из них:
OutputColors([NSColor controlAlternatingRowBackgroundColors]);
OutputColors([[NSColor class] performSelector: NSSelectorFromString(@"alternatingContentBackgroundColors")]);
Вывод (независимо от того, нахожусь ли я в светлом или темном режиме):
1.000000 0.999974 0.999991
0.945984 0.950821 0.950732
1.000000 0.999974 0.999991
0.945984 0.950821 0.950732
Почему цвет - даже в темном режиме - такой яркий?Когда я смотрю, например, в Finder, я вижу, что заголовки столбцов намного темнее.