问题标签 [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.
swift - 如何将 NSVisualEffectView 颜色与窗口匹配
我正在开发一个 Swift 4 macOS 应用程序,该应用程序涉及一个充满活力的黑暗窗口和一个窗口内 NSVisualEffectView。目前,NSVisualEffectView 的颜色与窗口的颜色不太匹配,但非常接近。
如何使 NSVisualEffectView 的颜色与窗口完美匹配?我的目标是让它提供的模糊效果仅在内容位于其下方时出现,并使其与窗口的颜色匹配会产生这种效果。我已经包含了当前正在发生的事情的图像。您可能需要放大图像并调高显示亮度才能看到差异。尽管在此屏幕截图中看起来很小,但 NSVisualEffectView 跨越了整个窗口,并且在 Mac 的 Retina 显示屏上,差异是显而易见的。
我曾尝试将 NSVisualEffectView 的背景颜色设置为清除,但没有奏效。
我将不胜感激任何建议!
macos - NSTextField 中的闪烁光标会导致 drawRect: 在自定义 NSView 中调用
我遇到了最奇怪的问题:
我在 NSScrollView 中有一个带有自定义 NSView 的 Cocoa 应用程序。
当我单击文本字段时,drawRect:
每次光标闪烁时都会在我的自定义视图中调用。
如果我将自定义视图移到滚动视图之外,问题就会消失。此外,如果我将测试视图放在其父视图的最底部,问题就会消失。
这不是为什么 textfield 中的闪烁光标会导致调用 drawRect 的副本?,这是同样的问题,但我没有覆盖hitTest:
. 事实上,我的测试视图实现如下所示:
我的视图层次结构:
它似乎是 NSVisualEffectView 和 NSScrollView 的组合。我无法在新项目中重现这一点。我尝试在我现有的应用程序中重新调整视图,但我无法确定这一点。
实际问题:
请注意drawRect:
,一旦文本字段具有焦点并在我单击外部时停止,它就会被调用。我不明白为什么每个插入符号脉冲都必须重新绘制不相关的视图。
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 截图。
有人面对并解决了这个问题吗?
更新(插入 nsvisualeffectview 的最小项目重现问题):http ://s000.tinyupload.com/?file_id=43114618701497778758
macos - NSPopover + NSBox 在暗模式色调/伽玛问题
我有NSPopover
withNSBox
和 subviews 是:MKMapView
和NSImageView
. 在暗模式下,整个 NSBox 为所有子视图添加 gamma/tint。这不会出现在灯光模式下(比较下图)。它似乎与NSVisualEffectView
. 如何防止/禁用此效果?
PS:此效果在普通窗口中不显示。只有弹出框受到影响。
开箱即用的代码拖放元素。莫哈韦 10.14.4
编辑:APR2020 根据“Adopting advanced features of the new ui of os x yosemite”(youtube),这是因为填充颜色的一些活力效果。Popover 具有有效的外观NSVibrantDarkAppearance
所以其他可能的解决方案是使用不鲜艳的填充颜色。
swift - 如何在 xcode 中将视觉效果视图移到后面,以便我可以在情节提要中看到我的 UI?
我的应用程序在 xcode 中如下所示:
我想添加一个透明效果,所以我添加了一个visualEffectView。我明白了:
酷,它使窗口半透明。但现在我看不到我的任何用户界面。在我的 xcode 故事板中也是如此,我看不到我的任何 UI:
那么如何将视觉效果视图移到所有其他元素的后面呢?我是否通过以编程方式更改 z 索引来做到这一点?如果我可以以编程方式完成它,我怎样才能让它也移动到故事板中我的 UI 的其余部分后面?任何调整 z 索引的代码都会在编译时这样做,这意味着我仍然无法在 xcode 中看到我的 UI。
编辑 - 我已经在菜单中的编辑器下找到了排列选项卡,但是发送到后面的按钮是灰色的:
macos - 如何防止 macOS 自动将 NSVisualEffectView 插入 NSScrollView
我NSView
通过将 aNSStackView
放入NSScroller
. 我以前做过,我的代码是正确的。
视图层次结构是我所期望的,直到第一次通过运行循环(或显示),其中 macOS Catalina(我认为是 Mojave)自动将 aNSVisualEffectView
插入到视图层次结构中。这弄乱了我的自定义绘图无止境..
我创建的层次结构是
这是在第一个显示循环之前由滚动视图“丰富”的:
并在第一次显示后,将 NSVisualEffects 视图添加到与 NSClipView 相同的级别:
有没有办法告诉滚动视图我不想要视觉效果视图?
任何帮助,将不胜感激!
macos - SwiftUI NSVisualEffectView 看起来不透明?
我正在尝试在我的项目中使用 NSVisualEffectView 和 SwiftUI。这就是我导入它的方式:
然后这就是我使用它的方式
最终,它在屏幕上显示为一个没有半透明或模糊的盒子灰色框。有人知道我在上面的例子中缺少什么吗?谢谢您的帮助
cocoa - 如何获得 NSTextField/NSSearchField 的充满活力的效果,如 Big Sur 中 Safari 的地址栏
我有一个 Mac 应用程序,其工具栏中有一个搜索字段(实际上是一个NSTextField
,但我也尝试NSSearchField
过)。
我的问题是 Big Sur 上的文本字段背景只是纯白色,很难识别。
Safari 在 Big Sur 上的位置栏对比更加强烈。我相信这是通过使用活力(如何更改 NSSearchField 的背景颜色(如 OS X 中的消息应用程序))以某种方式实现的,但我无法获得相同的效果。
我试过了:
testTextField.appearance = NSAppearance(named: .vibrantLight)
- 绘图/非绘图背景的各种组合
- 各种背景颜色
- 将我的工具栏项包装到
NSVisualEffectView
中,但显示在文本字段周围
编辑:
我应该提到我使用roundedBezel
边框样式。仅此一项似乎会影响背景颜色(即背景始终为白色,无论设置哪种颜色)。