问题标签 [nsvisualeffectview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
520 浏览

swift - 如何将 NSVisualEffectView 颜色与窗口匹配

我正在开发一个 Swift 4 macOS 应用程序,该应用程序涉及一个充满活力的黑暗窗口和一个窗口内 NSVisualEffectView。目前,NSVisualEffectView 的颜色与窗口的颜色不太匹配,但非常接近。

如何使 NSVisualEffectView 的颜色与窗口完美匹配?我的目标是让它提供的模糊效果仅在内容位于其下方时出现,并使其与窗口的颜色匹配会产生这种效果。我已经包含了当前正在发生的事情的图像。您可能需要放大图像并调高显示亮度才能看到差异。尽管在此屏幕截图中看起来很小,但 NSVisualEffectView 跨越了整个窗口,并且在 Mac 的 Retina 显示屏上,差异是显而易见的。

我曾尝试将 NSVisualEffectView 的背景颜色设置为清除,但没有奏效。

我将不胜感激任何建议!

在此处输入图像描述

0 投票
0 回答
320 浏览

swift - NSVisualEffectView 位于 NSVisualEffectView 之上

当将具有混合模式的 NSVisualEffectView 放置在窗口后,另一个具有混合模式的 NSVisualEffectView 在窗口内放置时,并且对顶部的 NSVisualEffectView 的角进行四舍五入时,NSVisualEffectView 顶部的角不能正确地四舍五入。附上的图片显示了这个问题。

我花了几个小时试图弄清楚为什么会发生这种情况,但无法解决这个问题。为了圆顶部 NSVisualEffectView 的角,我使用以下代码:

0 投票
0 回答
183 浏览

macos - NSTextField 中的闪烁光标会导致 drawRect: 在自定义 NSView 中调用

我遇到了最奇怪的问题:

我在 NSScrollView 中有一个带有自定义 NSView 的 Cocoa 应用程序。

当我单击文本字段时,drawRect:每次光标闪烁时都会在我的自定义视图中调用。

如果我将自定义视图移到滚动视图之外,问题就会消失。此外,如果我将测试视图放在其父视图的最底部,问题就会消失。

这不是为什么 textfield 中的闪烁光标会导致调用 drawRect 的副本?,这是同样的问题,但我没有覆盖hitTest:. 事实上,我的测试视图实现如下所示:

我的视图层次结构:

它似乎是 NSVisualEffectView 和 NSScrollView 的组合。我无法在新项目中重现这一点。我尝试在我现有的应用程序中重新调整视图,但我无法确定这一点。

实际问题:

问题

请注意drawRect:,一旦文本字段具有焦点并在我单击外部时停止,它就会被调用。我不明白为什么每个插入符号脉冲都必须重新绘制不相关的视图。

0 投票
0 回答
109 浏览

swift - NSVisualEffectView 的子视图有黑色背景

两个 LevelIndicator 有一个黑色的不透明背景,它们是 NSVisualEffectView 的子视图,如何使背景半透明?

在此处输入图像描述

0 投票
1 回答
339 浏览

macos - Xcode 10 - 模态显示时将 NSVisualEffectView 添加到 NSWindow (Mac OS)

我有一个 NSWindow,我以模态方式显示在其他窗口上以显示警报。代码是:

问题是,当在运行 Mojave 的 Mac 中使用 Xcode 10.1 编译时,我看到警报后面有一个灰色的“模糊”视图,这是我不希望出现的:我希望显示它的背景窗口可见。

使用 Xcode 9.4.1 编译的相同代码不会显示此模糊视图。

此外,我调试了 UI,确实在 Xcode 10.1 编译版本中插入了一个 NSVisualEffectView,在 9.4.1 上编译时不存在,但我似乎找不到摆脱它的方法。下面是两个版本中调试的 UI 截图。

Xcode 9 UI,没有模糊

Xcode 10 UI,模糊

有人面对并解决了这个问题吗?

更新(插入 nsvisualeffectview 的最小项目重现问题)http ://s000.tinyupload.com/?file_id=43114618701497778758

0 投票
1 回答
238 浏览

macos - NSPopover + NSBox 在暗模式色调/伽玛问题

我有NSPopoverwithNSBox和 subviews 是:MKMapViewNSImageView. 在暗模式下,整个 NSBox 为所有子视图添加 gamma/tint。这不会出现在灯光模式下(比较下图)。它似乎与NSVisualEffectView. 如何防止/禁用此效果?

PS:此效果在普通窗口中不显示。只有弹出框受到影响。

黑暗模式 灯光模式

开箱即用的代码拖放元素。莫哈韦 10.14.4

编辑:APR2020 根据“Adopting advanced features of the new ui of os x yosemite”(youtube),这是因为填充颜色的一些活力效果。Popover 具有有效的外观NSVibrantDarkAppearance

所以其他可能的解决方案是使用不鲜艳的填充颜色。

0 投票
1 回答
88 浏览

swift - 如何在 xcode 中将视觉效果视图移到后面,以便我可以在情节提要中看到我的 UI?

我的应用程序在 xcode 中如下所示:

在此处输入图像描述

我想添加一个透明效果,所以我添加了一个visualEffectView。我明白了:

在此处输入图像描述

酷,它使窗口半透明。但现在我看不到我的任何用户界面。在我的 xcode 故事板中也是如此,我看不到我的任何 UI:

在此处输入图像描述

那么如何将视觉效果视图移到所有其他元素的后面呢?我是否通过以编程方式更改 z 索引来做到这一点?如果我可以以编程方式完成它,我怎样才能让它也移动到故事板中我的 UI 的其余部分后面?任何调整 z 索引的代码都会在编译时这样做,这意味着我仍然无法在 xcode 中看到我的 UI。

编辑 - 我已经在菜单中的编辑器下找到了排列选项卡,但是发送到后面的按钮是灰色的:

在此处输入图像描述

0 投票
3 回答
427 浏览

macos - 如何防止 macOS 自动将 NSVisualEffectView 插入 NSScrollView

NSView通过将 aNSStackView放入NSScroller. 我以前做过,我的代码是正确的。

视图层次结构是我所期望的,直到第一次通过运行循环(或显示),其中 macOS Catalina(我认为是 Mojave)自动将 aNSVisualEffectView插入到视图层次结构中。这弄乱了我的自定义绘图无止境..

我创建的层次结构是

这是在第一个显示循环之前由滚动视图“丰富”的:

并在第一次显示后,将 NSVisualEffects 视图添加到与 NSClipView 相同的级别:

有没有办法告诉滚动视图我不想要视觉效果视图?

任何帮助,将不胜感激!

0 投票
0 回答
250 浏览

macos - SwiftUI NSVisualEffectView 看起来不透明?

我正在尝试在我的项目中使用 NSVisualEffectView 和 SwiftUI。这就是我导入它的方式:

然后这就是我使用它的方式

最终,它在屏幕上显示为一个没有半透明或模糊的盒子灰色框。有人知道我在上面的例子中缺少什么吗?谢谢您的帮助

0 投票
0 回答
159 浏览

cocoa - 如何获得 NSTextField/NSSearchField 的充满活力的效果,如 Big Sur 中 Safari 的地址栏

我有一个 Mac 应用程序,其工具栏中有一个搜索字段(实际上是一个NSTextField,但我也尝试NSSearchField过)。

我的问题是 Big Sur 上的文本字段背景只是纯白色,很难识别。

Safari 在 Big Sur 上的位置栏对比更加强烈。我相信这是通过使用活力(如何更改 NSSearchField 的背景颜色(如 OS X 中的消息应用程序))以某种方式实现的,但我无法获得相同的效果。

标题栏

我试过了:

  • testTextField.appearance = NSAppearance(named: .vibrantLight)
  • 绘图/非绘图背景的各种组合
  • 各种背景颜色
  • 将我的工具栏项包装到NSVisualEffectView中,但显示在文本字段周围

编辑:

我应该提到我使用roundedBezel边框样式。仅此一项似乎会影响背景颜色(即背景始终为白色,无论设置哪种颜色)。