调整 NSScrollView 的大小

Resizing NSScrollView

如何使用 Swift 调整 NSScrollView 的大小?

class MainViewController: NSViewController {

    @IBOutlet weak var scrollView: NSScrollView!

    override func viewDidLoad {
        scrollView.setFrameOrigin(NSPoint(x: 340, y: 537))
        scrollView.setFrameSize(CGSize(width: scrollView.contentSize.width, height: 102.0))
    }

}

以上代码只有在没有设置约束的情况下才有效。但是,在没有约束的情况下,当 window 调整大小时,ScrollView 不会留在原地。

如果您尝试设置 NSScrollViewdocument 大小(可滚动区域),那么我们需要做的就是设置文档视图的大小。

Note: This assumes there are no constraints on the document view.

scrollView.documentView?.setFrameSize(NSSize(width: 576, height: 56))

如果您想滚动到特定区域,请参阅 scrollToVisible(_:)

所以这对我有用,因为我的 ScrollView 位于左上角:

scrollView.setFrameOrigin(NSPoint(x: self.view.frame.minX + 340, y: self.view.frame.maxY - 172))
scrollView.setFrameSize(CGSize(width: scrollView.contentSize.width, height: 102.0))

下图显示了大小检查器中用于启用自动调整大小并保持在window左上角的设置。