gpt4 book ai didi

cocoa - 在 NSScrollView 中展开 documentView

转载 作者:行者123 更新时间:2023-12-03 17:48:43 27 4
gpt4 key购买 nike

我有一个 NSSplitView,其中包含 2 个并排的 Pane ,在右侧 Pane 中,有一个 NSScrollView。我有一个单独的 XIB 文件,其中包含我想要嵌入到 ScrollView 中的 View (inspectorView),我喜欢这样:

self.scrollView.documentView = inspectorView

这工作得很好,但是,当我将分割 View Pane 稍微宽一点时,我的 inspectorView 不会水平增长以填充空间。使用 -NSShowAllviews YES 我已经确认 ScrollView 已正确调整大小,但是,inspectorView 保持与最初分配给 时相同的宽度 ScrollView .documentView。这就是我的问题...我希望它扩展以填充分割 View 宽度。

我对所有内容都使用自动布局,并且我的所有 View 都是使用 XIB 创建的。我以编程方式做的唯一一件事就是设置 ScrollView 的 documentView 属性。

如果我将 inspectorView 添加为 subview ,那么很容易添加约束来告诉它增长以填充父 View 。但是,我不确定设置 NSScrollViewdocumentView 时的等效机制是什么。有什么建议么?谢谢。

编辑

正如通常的方式,在我发布此文章 20 分钟后,我发现了一种让它发挥作用的方法,即设置自动调整大小蒙版,然后让它将该蒙版转换为约束。

inspectorView.autoresizingMask = .ViewWidthSizable
inspectorView.translatesAutoresizingMaskIntoConstraints = true
self.scrollView.documentView = inspectorView

通常情况下,我将 translatesAutoresizingMaskIntoConstraints 设置为 false,而不是 true。不管怎样,正如我所说,这似乎有效,但我还不相信这是正确的方法。想法?

最佳答案

您可以简单地将文档 View 的左右边缘固定到其 super View 的相应边缘 - ScrollView 的 contentView (一个 NSClipView 实例):

// docView and scrollView defined elsewhere.
// In both cases translatesAutoresizingMaskInConstraints is set to false.

scrollView.documentView = docView

let viewsDict = ["docView" : docView]
scrollView.contentView.addConstraints(
NSLayoutConstraint.constraintsWithVisualFormat("H:|[docView]|",
options: .allZeros,
metrics: nil,
views: viewsDict)
)

这应该适用于您的情况,听起来您已经获得了符合您要求的文档 View 的垂直尺寸。

关于cocoa - 在 NSScrollView 中展开 documentView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35884805/

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