问题标签 [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 投票
1 回答
675 浏览

macos - NSVisualEffectView 在使用 layer-backed view 时消失

我的目标

我想为集合视图添加活力效果。

设置

我有以下视图层次结构:

在此处输入图像描述

当我使用这种布局时,背景具有预期的活力效果,但性能并不理想。

NSCollectionView已针对支持层的视图进行了优化,因此我CALayer在集合视图的封闭滚动视图上启用了。

问题

如果我这样做,视觉效果视图将不再可见,并且集合视图具有白色背景。

我的问题

有什么方法可以让 layer-backed view 一起工作NSVisualEffectView吗?

0 投票
2 回答
267 浏览

macos - 应用程序在后台时出现图形错误 NSVisualEffectView

我的应用程序已NSTableView配置为 SourceList。下面NSTableView是表中的两个NSButton两个添加/删除项目。表格和按钮嵌入在NSVisualEffectView(.behindWindow 模式)中。

结果很好,我可以通过表格和按钮看到背景,但是,当应用程序处于后台时(我将焦点放在另一个应用程序上),表格视图和按钮变为黑色,并且视图不会重绘,如下图所示(用iPhone拍摄,因为截图没有显示bug!):

应用程序在后台时的图形错误

这是视图的 IB 结构: IB结构

容器视图 (CustomView) 是层支持的。

有什么线索可以解决这个问题吗?提前致谢 !

0 投票
1 回答
229 浏览

nsmenuitem - NSVisualEffectView 上的 NSImageView

我需要在右侧制作带有图标的 NSMenuItem。我最终得到了自定义视图,其中包含 NSVisualEffectView 顶部的 NSTextField 和 NSImageView 以及我用来模仿系统选择的选择材料。NSVisualEffectView 默认是隐藏的。But when the item is selected, my NSVisualEffectView appears on screen and image is drawn with background. 我怎样才能摆脱它?wantLayer = YES 和 backgroundColor = CGColor.clear 没有帮助。提前致谢。

0 投票
2 回答
776 浏览

swift - 使用NSVisualEffectView时如何添加按钮

我创建了一个NSVisualEffectView用于获得模糊和圆角的窗口。喜欢这里

问题是当我有NSVisualEffectView代码时,我在窗口中看不到我的按钮。如果我删除代码,则会显示该按钮。出了什么问题?

AppDelegate.swift 中的 NSVisualEffectView 代码:

我在情节提要中添加了一些按钮。当我运行该项目时,我看不到任何按钮。

在此处输入图像描述

当我从applicationDidFinishLaunching(_ aNotification: Notification)NSVisualEffectView代码中删除所有内容时,我可以看到按钮。

在此处输入图像描述

谁能告诉我发生了什么?

0 投票
1 回答
312 浏览

swift - 使 NSButton 半透明

我在 NSVisualEffectView 上有 2 个 NSButton。第一个按钮图像是系统 NSEnterFullScreenTemplate 图像。第一个按钮上的图像是半透明的。

在第二个按钮上,我有一个在 Assets.xcassets 中导入的图像。在第二个按钮上,图像不是半透明的(它保持白色)。

我怎样才能使这个图像也半透明?

0 投票
0 回答
307 浏览

nsvisualeffectview - 10.13 中窗口内的 NSVisualEffectView 不再模糊

使用NSVisualEffectView(混合设置为窗口内、材质暗、状态活动)的现有应用程序似乎不再“模糊”其背后的内容。该应用程序在 10.12 和 10.11 等上运行良好。然而,在 10.13 测试版中,它在其所在的背景之上显示为一个坚实的、深色的不透明覆盖层。层次结构中的所有视图都打开了核心动画层。

0 投票
1 回答
456 浏览

cocoa - NSAppearance、NSEffectView.Material 和“活力”之间有什么关系

NSAppearance如问题标题所示,NSEffectView.Material、 和“活力”之间的关系是什么?我通过实验发现,对于某些材料,选择NSAppearance可以改变材料的显示方式(例如NSEffectView.Material.titlebar,根据活动的不同而变亮或变暗NSAppearance),而其他材料(例如.light)似乎并不在意。

我怀疑像这样的材料是从、、.titlebar中选择的代理,并且取决于,但那似乎是. 我也在描述中看到....dark.ultradark.light.mediumLightNSAppearance.appearanceBasedNSAppearance.Name.vibrantLight

这应该只在 NSVisualEffectView 或其子视图之一上设置。

NSEffectView...这在某种程度上与文档中的声明相矛盾...

视图的有效外观必须具有活力……在大多数情况下,您在窗口或视觉效果视图上设置外观——然后子视图继承外观。

...建议将其设置vibrantLightNSAppearance整个窗口的 (如果这是您想要的外观)可能是正确的。

最后,我对“活力”到底是什么感到困惑。如果有人能解释一下,那就太好了。

0 投票
1 回答
196 浏览

macos - NSTablewView,突出显示模式“无”和模糊背景

我注意到,当我的基于视图NSTableViewhighlight属性在 Interface Builder 中设置为“源列表”时,它会使用活力效果渲染其背景(即,它会模糊其父窗口后面的内容)。

相反,如果我将所述属性设置为“无”“常规”(其他两个选项),则该background color属性会自动设置为白色,并且在运行时呈现不透明(即使 alpha 小于 1.0 的自定义颜色是指定的)。

我需要我的表格单元格不可突出显示,但我真的很喜欢模糊效果。

此外,我不能通过 NSTableViewDelegate 方法禁止单元格突出显示:

...因为这使我的单元格内的文本字段无法选择,因此无法编辑。

我发现了这个问题,它基本上要求相反的解决方案(即,当突出显示设置为“源列表”时禁用活力),所以按照那里的答案,我在托管我的表视图的视图控制器上尝试了这段代码:

(外观在两个单独的行中被实例化并分配以确认它在调试器上是非零的)

...但它不会改变任何东西。

有什么简单的解决方法吗?

0 投票
0 回答
117 浏览

swift - 在标题栏后面滚动的表格视图会在模糊更新滞后时创建伪影

我注意到我在 Xcode 9(当时是测试版,现在发布)上编译的项目都有一个奇怪的行为。当视图在标题栏后面滚动时(无论是否使用工具栏),模糊/半透明无法像滚动一样快速更新,并导致出现伪影。它看起来像这样:

您可以注意到所选表格视图单元格中的蓝色突出显示如何在标题栏模糊处留下标记。

这里也一样,但它只是酒吧的一部分。

我还制作了一个视频,以便任何人都可以现场观看。

我试图在两台不同的机器上编译相同的测试项目,但结果是一样的。其中一台机器正在全新安装中运行。两者都是 macOS 10.13/Xcode 9.0

该测试项目在GitHub上可用。

有人知道发生了什么吗?如果没有,我会提交雷达。

0 投票
0 回答
341 浏览

cocoa - 包裹的 NSVisualEffectView 上方的 NSTextField 看起来模糊/粗体

NSVisualEffectView在我的 Cocoa 应用程序中使用了一个。我的问题是,如果视觉效果视图本身被包裹在另一个视觉效果视图中,则视觉效果视图上方的文本字段中的文本看起来有点粗/模糊NSView(请参见下面屏幕截图中的标签 #3)。

我的视图层次结构如下所示:

或截图:

查看层次结构

这是窗口的样子:

有问题的窗口

注意第三个标签看起来有点粗吗?那是包装视觉效果视图的视图上方的那个。

我尝试覆盖allowsVibrancy以在我的文本字段中返回 false,但这不起作用。

为什么我首先需要这种视图排列:

我想将文本字段用于自定义窗口标题。视觉效果视图是内容视图的一部分,它可以根据应用程序的状态而改变。但是,标题文本字段将始终显示(这就是它位于顶层的原因)。