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]);