设置 NSStatusItem 的颜色 OSX 10.10 Swift
Set color of NSStatusItem OSX 10.10 Swift
我看到菜单栏中的一些图标有颜色,但我找不到为我正在处理的 NSStatusItem
着色的方法。我使用带有颜色的图像(在 Images.xcassets 内),但它只是染成白色或黑色。我正在使用 MacOS 10.10 和 Swift。我也搜索了 Apple documentation 但没有成功。
感谢您的宝贵时间。
那些带有颜色的状态项实际上是用错误的(旧的)方式来做的。您应该使用模板图像,以便系统可以应用效果并在深色模式下正确显示。对于模板图像,颜色会被忽略。只有 Alpha 通道很重要。
如果你真的想违背 Apple 的建议,只需使用非模板图像即可。不要在图像名称后缀 "Template" 并且不要在代码中设置 template
属性。
来自 10.10 的 AppKit 发行说明:
NSStatusItem appearance and Dark Menu support (Section added since WWDC seed)
There are a number of stylistic changes added and supported by
NSStatusItem, including appearance changes for Dark Menus. Template
images should always be used to ensure correct styling based on the
various states the status item can be in (light menu, dark menu,
inactive light, inactive dark, selected, disabled, etc).
NSStatusBarButton’s appearsDisabled property can be used to give the
image a disabled or “off” look without having the item be functionally
disabled. …
我看到菜单栏中的一些图标有颜色,但我找不到为我正在处理的 NSStatusItem
着色的方法。我使用带有颜色的图像(在 Images.xcassets 内),但它只是染成白色或黑色。我正在使用 MacOS 10.10 和 Swift。我也搜索了 Apple documentation 但没有成功。
感谢您的宝贵时间。
那些带有颜色的状态项实际上是用错误的(旧的)方式来做的。您应该使用模板图像,以便系统可以应用效果并在深色模式下正确显示。对于模板图像,颜色会被忽略。只有 Alpha 通道很重要。
如果你真的想违背 Apple 的建议,只需使用非模板图像即可。不要在图像名称后缀 "Template" 并且不要在代码中设置 template
属性。
来自 10.10 的 AppKit 发行说明:
NSStatusItem appearance and Dark Menu support (Section added since WWDC seed)
There are a number of stylistic changes added and supported by NSStatusItem, including appearance changes for Dark Menus. Template images should always be used to ensure correct styling based on the various states the status item can be in (light menu, dark menu, inactive light, inactive dark, selected, disabled, etc). NSStatusBarButton’s appearsDisabled property can be used to give the image a disabled or “off” look without having the item be functionally disabled. …