gpt4 book ai didi

xcode - 如何使带有选项卡 View 的 View 可滚动?

转载 作者:行者123 更新时间:2023-12-03 17:46:04 26 4
gpt4 key购买 nike

我在 NSView 中得到了一个 NSTabView。该 NSView 位于 NSClipView 中,而 NSClipView 又位于 NSScrollView 中。它看起来像这样(绿色的 NSTabView,红色的 NSView):

enter image description here

如您所见,NSTabView 的内容被剪切,并且不会出现滚动条(因为 View 不会扩展到窗口之外)。

如何让 NSTabView 占用所需的空间(不会被剪掉),并用它扩展 NSView?然后,NSScrollView 可以处理过度增长的 NSView 的滚动。

由于我的内容动态变化,我不想为 NSTabView 的 super View 的宽度和高度输入一些硬值。

这只是其中的一部分;现在整体层次结构如下:

enter image description here

我希望 NSTabView 的 super View 可滚动而不是剪裁,如下所示:

enter image description here

最佳答案

我将描述的设置是针对 NSTabView 的,它将固定到 ScrollView 的顶部、左侧和右侧。请注意,NSTabView 可以替换为任何其他 NSView,设置是相同的。

enter image description here

从将 ScrollView 放入 xib/storyboard 开始,您将拥有 NSScrollView -> NSClipView -> NSView(文档 View )。将 NSScrollView 约束到窗口的边缘。将您的 NSTabView 放到 NSView 实例上。添加约束,使您的 NSTabView 边缘约束等于 NSView,并使用定义它的选项卡 View 内的其他内容显式或隐式定义高度约束。

enter image description here

我个人喜欢更改 NSView 实例(文档 View )布局以使用约束,默认情况下它使用自动调整大小蒙版,这使得很难使其与 NSTabView 保持同步。我们希望文档 View 固定在 ScrollView 的顶部、左侧和右侧。该 View 的大小决定了可滚动区域,因此我们希望它与 NSTabView 的大小相同,因此选项卡 View 的高度将决定可滚动区域。

要更改此设置,请选择文档 View ,然后在“大小检查器”下,我们要将“布局”类型更改为“自动”。

enter image description here

最后,在顶部、左侧和右侧添加约束,就可以开始了。

如果您希望 ScrollView 从顶部而不是底部开始,您应该子类化文档 View 并覆盖 isFlipped:

class FlippedView: NSView {
override var isFlipped: Bool { true }
}

关于xcode - 如何使带有选项卡 View 的 View 可滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60972206/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com