При подготовке ко всем предстоящим изменениям цвета macOS (т. Е. Dark Mode) я пытаюсь использовать цвета, определенные в файле xcassets.Я ссылаюсь на цвета через их имя следующим образом:
NSColor(named: NSColor.Name("App Control Foreground Color"))
Я ожидаю, что если указанное имя цвета не существует ни в одном из доступных ресурсов, этот инициализатор NSColor вернет ноль, и я быбыть в состоянии написать код, подобный следующему:
NSColor(named: NSColor.Name("App Control Foreground Color")) ?? NSColor.textColor
Вместо этого, если названный цвет не существует, инициализатор создает нецвет с неопределенным цветовым пространством.Это, в свою очередь, действительно может сделать цвета прозрачными при использовании и не генерирует предупреждений.
Какой хороший способ определить, существует ли на самом деле именованный цвет в комплекте и что NSColor(named :) инициализатор дал мне вместо этого "плохой" цвет?