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

问题描述 投票:2回答:1

我正在通过将NSView放入NSStackView来以编程方式构建NSScroller层次结构。我以前做过,我的代码正确。

视图层次结构是我期望的,直到第一次通过运行循环(或显示)时,macOS Catalina(我认为是Mojave)才自动将NSVisualEffectView插入视图层次结构。这弄乱了我的自定义图纸,没有结束。

我创建的层次结构是

NSScrollView -> NSStackView -> stack subviews

在第一个显示循环进入之前,滚动视图对此内容进行了“丰富”:

NSScrollView -> NSClipView -> NSStackView -> stack subviews

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

NSScrollView -> NSClipView          -> NSStackView -> stack subviews
             -> NSVisualEffectsView

是否有一种方法可以告诉滚动视图我不需要视觉效果视图?

任何帮助将不胜感激!

我正在通过将NSStackView放入NSScroller中以编程方式构建NSView层次结构。我以前做过,我的代码是正确的。直到第一次我都希望看到视图层次结构。

macos cocoa appkit nsscrollview nsvisualeffectview
1个回答
0
投票

确定您必须将drawsBackground设置为false。因此,通过引用NSScrollView,您可以在视图加载后调用类似的方法,或者在xib / storyboard文件中分配此值。

© www.soinside.com 2019 - 2024. All rights reserved.