1

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

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

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

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

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

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

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

4

1 回答 1

3

因此,NSAppearance通常描述了外观设置所针对的视图层次结构的控件、颜色等的样式。

NSVisualEffectView 提供了一种实现两种效果的方法:半透明和活力。前者更明显,带有半透明的侧边栏或标题栏。文档对活力有很好的描述:

活力与半透明有关。它描述了一种进行特殊混合的合成模式,例如 Plus Lighter、Plus Darker、Color Dodge 或 Color Burn。

基本上描述了视觉效果视图中的内容(文本、图像等)如何与半透明合成。


那么这些都有什么关系呢?

材料

材质描述了半透明效果的外观。正如您所指出的,有些受 NSAppearance 影响,有些则不受。那些在语义上描述了它们的用法,以便自定义 UI 可以类似于该效果,而不管外观如何(.appearanceBased, .titlebar, .menu, .popover, .sidebar, .selection),而其他的则允许对生成的半透明进行特定控制(.light, .dark, .mediumLight, .ultraDark),但应该与其相关联使用NSAppearance 使视觉效果视图内的内容可以匹配半透明效果。除非您需要对材料进行特定控制,否则使用外观敏感/语义的材料可能会产生更标准的 UI。

活力

所以为了得到 NSVisualEffectView 可以提供的内容活力效果,需要结合活力外观:.vibrantLight或者.vibrantDark. 如果不设置“充满活力”的外观,NSVisualEffectView 将仅在背景中提供半透明效果,其中的内容看起来很普通,并且没有您在侧边栏或标题栏中看到的特殊混合模式。

于 2017-08-20T22:37:20.093 回答