Как определить, что именованный NSColor не существует в комплекте? - PullRequest
0 голосов
/ 11 июня 2018

При подготовке ко всем предстоящим изменениям цвета 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 :) инициализатор дал мне вместо этого "плохой" цвет?

...