swift - 在 macOS Mojave 上使侧边栏小部件透明
问题描述
我有两个带有侧边栏扩展的 macOS Mojave 应用程序。我注意到小部件模拟器和侧边栏中的应用程序扩展看起来不同。当应用程序在 Widget Simulator 中运行时,背景具有一定的透明度。当我正常运行应用程序时,没有这样的透明度。我附上了两张截图:
如您所见,该应用程序没有透明度(与 macOS 的计算器应用程序相比)。第二个屏幕截图显示了在模拟器中运行的应用程序具有透明度。
我必须设置任何选项以使其透明吗?如果 NSView 后代有新类型吗?标题栏也不同,所以我认为简单地将背景颜色设置为“清除”是不够的。该应用程序的最新版本仅针对 10.14 构建,因此我不在乎该解决方案是否仅适用于 macOS Mojave。
我已经检查过,小部件继承了超级视图/窗口的外观。我没有更改任何其他属性。我也尝试使用具有各种设置的 NSVisualEffectView ,但这也没有解决问题。
问候
解决方案
我刚刚在 Apple Developer 论坛中找到了一个解决方案:
在扩展的 info.plist 文件中,有一个名为 NSExtension 的部分。在那里,必须增加 NSExtensionAttributes/NSExtensionPointVersion(以前是 2.0,现在是 3.0)。
现在应用扩展看起来不错:
推荐阅读
- javascript - 为什么 forEach 和 for...of 与异步函数的工作方式不同?
- php - Laravel 8 - 使用多态关系时无法设置 morphOne id
- c++ - 为什么在 C 中不允许使用 `&`,但在这种情况下在 C++ 中?有什么异议吗?
- c# - 如何从列表整数中使用最小键获取最大计数,linq 写在一个表达式中
- r - oneHotEncode R中的光栅层
- python - 将列设置为列索引 Pandas 数据框
- node.js - 即使使用 `credentials: 'include'` 也无法使用 cookie 获取
- python - 最小化 numpy 数组操作的运行时间
- reactjs - 如何使用 React 设置 Eslint
- textx - TextX 如何定义单词之间的边界?