通过 addSubview 向 NSScrollView 添加自定义视图时不出现滚动条

问题描述

我想在运行时通过代码动态添加自定义 NSView 作为 NSScrollView内容。 因此,我向我的 NSScrollView 添加一个 NSWindow,为此 NSScrollView 创建了一个插座并添加了我的自定义视图。

@IBOutlet var myScrollView: NSView!
@IBOutlet var myCustomView: NSView!

myScrollView.addSubview(myCustomView)

这工作正常(myCustomView 的内容显示NSScrollView 中)但 NSScrollView 滚动条被禁用并且内容(大于 NSScrollView)无法滚动。

有什么我遗漏的吗? 谢谢!

解决方法

要将可滚动内容添加到 NSScrollView,您应该设置 documentView 而不是通过 addSubview(_:)

let myView = MyView(frame: <somerect>)
scrollView.documentView = myView

如果滚动仍然不起作用,您可能需要指定 contentSize

NSScrollView 的文档