Sierra 通知中心小部件背景颜色
Sierra Notification Center widgets background colour
与 Yosemite 和 El Cap 相比,Sierra 中的通知中心具有新的浅色背景。然而,即使我使用新的 SDK 重建,我的小部件仍然显示旧的、深色的样式。
视图的外观设置为 "Inherited (Vibrant Dark)"。将其更改为 "Aqua" 似乎没有任何效果。
是否可以将第三方小部件更改为与 Apple 的一样?我注意到所有其他第三方小部件看起来都一样。
您需要在 Today 扩展的 Info.plist
中将 NSExtensionPointVersion
的值设置为 2.0
以获得新外观:
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionPointVersion</key>
<string>2.0</string>
</dict>
</dict>
我上次检查时没有任何记录,但如果您使用 Xcode 8 创建新的 Today 扩展,它应该为您添加它,确认它是正确的方法。 (我实际上是通过检查 Apple 自己的 Today 扩展的内容来弄明白的。)
值得一提的是,旧版本的 macOS 仍然会有深色外观,因此如果您的扩展程序向后兼容,您需要调整内容以适应背景颜色。在 Today 扩展程序的主视图控制器中,您可以像这样检查深色外观:
NSString *appearance = self.parentViewController.view.effectiveAppearance.name;
BOOL legacyDarkBackground = ([appearance isEqualToString:NSAppearanceNameVibrantDark]);
与 Yosemite 和 El Cap 相比,Sierra 中的通知中心具有新的浅色背景。然而,即使我使用新的 SDK 重建,我的小部件仍然显示旧的、深色的样式。
视图的外观设置为 "Inherited (Vibrant Dark)"。将其更改为 "Aqua" 似乎没有任何效果。
是否可以将第三方小部件更改为与 Apple 的一样?我注意到所有其他第三方小部件看起来都一样。
您需要在 Today 扩展的 Info.plist
中将 NSExtensionPointVersion
的值设置为 2.0
以获得新外观:
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionPointVersion</key>
<string>2.0</string>
</dict>
</dict>
我上次检查时没有任何记录,但如果您使用 Xcode 8 创建新的 Today 扩展,它应该为您添加它,确认它是正确的方法。 (我实际上是通过检查 Apple 自己的 Today 扩展的内容来弄明白的。)
值得一提的是,旧版本的 macOS 仍然会有深色外观,因此如果您的扩展程序向后兼容,您需要调整内容以适应背景颜色。在 Today 扩展程序的主视图控制器中,您可以像这样检查深色外观:
NSString *appearance = self.parentViewController.view.effectiveAppearance.name;
BOOL legacyDarkBackground = ([appearance isEqualToString:NSAppearanceNameVibrantDark]);