首页 > 解决方案 > 如何确定捆绑中是否不存在命名的 NSColor?

问题描述

为了准备所有即将到来的 macOS 颜色更改(即暗模式),我正在尝试使用在 xcassets 文件中定义的颜色。我通过它们的名称引用颜色,如下所示:

NSColor(named: NSColor.Name("App Control Foreground Color"))

我希望,如果指定的颜色名称不存在于任何可用资源中,则此 NSColor 初始化程序将返回 nil,并且我将能够编写如下代码:

NSColor(named: NSColor.Name("App Control Foreground Color")) ?? NSColor.textColor

相反,如果指定的颜色不存在,初始化程序会创建一个具有未指定颜色空间的非颜色。反过来,这实际上可以使事物在使用时变得透明,并且不会产生任何警告。

有什么好方法可以检测包中是否实际上不存在命名颜色,以及 NSColor(named:) 初始化程序是否给了我一个“坏”颜色?

标签: swiftmacoscocoanscolor

解决方案


推荐阅读