cocoa - 在 NSScrollView 中展开 documentView

标签 cocoa appkit nsscrollview

我有一个 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/

相关文章:

macOS 沙箱上的 Swift 文件读取权限错误

macos - 无法让 NSForm 工作?

SwiftUI:NSViewControllerRepresentable 中的 NSPageController 崩溃

macos - 将 NSTableView 滚动到 endOfDocument 而不是最后一行

macos - (Cocoa) NSScrollView 与 IKImageBrowserView 滚动到底部

cocoa - 不复制 iPhone 3.0 SDK key 的 NSDictionary?

ios - UITextView – 无法在文本上设置下划线或删除线属性?

cocoa - 当 LSUIElement 设置为 YES 时,如何处理快捷方式?

cocoa - NSScrollview 和透明、覆盖 NSScroller 子类

iphone - 从自定义类中获取特定类型的属性