我有NSSplitView
包含2个并排窗格,在右侧窗格中有NSScrollView
。我有一个单独的XIB文件,其中包含我想要嵌入滚动视图的视图(inspectorView
),我喜欢这样:
self.scrollView.documentView = inspectorView
然而,当我将分割视图窗格放宽一点时,我的inspectorView
不会水平增长以填充空间。使用-NSShowAllviews YES
我已确认滚动视图正在调整大小,但inspectorView
保持与最初分配给scrollView.documentView
时的宽度相同。这就是我的问题...我希望它扩展以填充拆分视图宽度。
我使用autolayout进行所有操作,并且所有视图都是使用XIB创建的。我以编程方式做的唯一事情就是设置滚动视图的documentView
属性。
如果我将inspectorView
添加为子视图,则可以轻松添加约束,告诉它增长以填充父视图。但是,在设置documentView
的{{1}}时,我不确定等效机制是什么。有什么建议?感谢。
修改
通常情况下,在我发布这个20分钟后,我发现了一种让它工作的方法,即设置自动调整大小掩码,然后让它将该掩码转换为约束。
NSScrollView
通常,我将inspectorView.autoresizingMask = .ViewWidthSizable
inspectorView.translatesAutoresizingMaskIntoConstraints = true
self.scrollView.documentView = inspectorView
设为translatesAutoresizingMaskIntoConstraints
,而不是false
。无论如何,正如我所说,这似乎有效,但我还不确定这是正确的方式。想法?
答案 0 :(得分:1)
您可以简单地将文档视图的左右边缘固定到其超级视图的相应边缘 - 滚动视图的contentView
(NSClipView
实例):< / p>
// 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)
)
这应该适用于您的情况,听起来您已经获得了文档视图的垂直大小,符合您的要求。