controlAlternatingRowBackgroundColors, возвращающий необоснованные значения - PullRequest
0 голосов
/ 01 октября 2018

Я вижу, что некоторые из моих элементов пользовательского интерфейса выглядят странно при использовании темного режима в 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, я вижу, что заголовки столбцов намного темнее.

...