swift - 如何确定捆绑中是否不存在命名的 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:) 初始化程序是否给了我一个“坏”颜色?
解决方案
推荐阅读
- c# - 每个包含 2 个对象的数组列表
- swift - 在 init() 中使用 guard let 安全地展开可选
- c - 使用 sqlite 获取数据
- python - 用selenium python从不同的html中获取href标签下的链接
- r - 按文本列值分组和绘图
- r - 如果另一个数据框中的该组中有一行,如何删除数据集中的组?
- angularjs - 如何使用 AngularJS 从下拉列表中的值动态填充列表?
- typescript - 无法使用 Vuex 和 vuex-module-decorators 加载静态模块
- ruby - 如何在这种用于 reduce 的通用 ruby 方法中测试 Truthy 和 Falsy?
- django - 如何将动态数据包含到 django url 模板标签中