首页 > 解决方案 > 在 macOS Mojave 上使侧边栏小部件透明

问题描述

我有两个带有侧边栏扩展的 macOS Mojave 应用程序。我注意到小部件模拟器和侧边栏中的应用程序扩展看起来不同。当应用程序在 Widget Simulator 中运行时,背景具有一定的透明度。当我正常运行应用程序时,没有这样的透明度。我附上了两张截图:

通知区域的屏幕截图。 您可以在下面看到计算器应用程序和我的应用程序 - 不透明

这就是我的应用在模拟器中的外观

如您所见,该应用程序没有透明度(与 macOS 的计算器应用程序相比)。第二个屏幕截图显示了在模拟器中运行的应用程序具有透明度。

我必须设置任何选项以使其透明吗?如果 NSView 后代有新类型吗?标题栏也不同,所以我认为简单地将背景颜色设置为“清除”是不够的。该应用程序的最新版本仅针对 10.14 构建,因此我不在乎该解决方案是否仅适用于 macOS Mojave。

我已经检查过,小部件继承了超级视图/窗口的外观。我没有更改任何其他属性。我也尝试使用具有各种设置的 NSVisualEffectView ,但这也没有解决问题。

问候

标签: swiftmacos-mojave

解决方案


我刚刚在 Apple Developer 论坛中找到了一个解决方案:

苹果开发者论坛

在扩展的 info.plist 文件中,有一个名为 NSExtension 的部分。在那里,必须增加 NSExtensionAttributes/NSExtensionPointVersion(以前是 2.0,现在是 3.0)。

现在应用扩展看起来不错:

Info.plist 设置


推荐阅读