Единственные реальные проблемы, с которыми я сталкиваюсь, - это градиенты темного цвета. 10.4 все еще является допустимой целью, поэтому я уже некоторое время использую свой собственный класс-оболочку градиента, основанный на объектах CGShading (только NSGradient 10.5+).
Может помочь простая нелинейная корректирующая кривая, основанная на приведенной ниже формуле:
colour_component = pow(colour_component, 1.0/1.19);
Значение 1.19 можно отрегулировать для создания различных корректирующих кривых.
Если 10.6 обнаружено во время выполнения (с использованием Гештальта), кривая применяется к каждому из красного, зеленого и синего компонентов как для начального, так и для конечного цветов перед вычислением градиента. Я оставил альфа-значения нетронутыми.
Я также добавил удобную настройку пользователя, чтобы включить и выключить ее.