Swift 约束不';无法为NSScrollView documentView正常工作

Swift 约束不';无法为NSScrollView documentView正常工作,swift,xcode,cocoa,Swift,Xcode,Cocoa,我的scrollView的内容总是从左下角开始,如下所示(但我希望它从左上角开始): 但是,当我添加更多对象时,它会得到修复,documentView从其底部扩展如下: 我添加了一个视图作为NSScrollViews文档视图,如下所示: scrollingView.documentView = contentViewIB2 然后,我为documentView的顶销、左销、高度和宽度添加所需的约束,如下所示: topConstraint = NSLayoutConstraint(

我的scrollView的内容总是从左下角开始,如下所示(但我希望它从左上角开始): 但是,当我添加更多对象时,它会得到修复,documentView从其底部扩展如下:

我添加了一个视图作为NSScrollViews文档视图,如下所示:

scrollingView.documentView = contentViewIB2
然后,我为documentView的顶销、左销、高度和宽度添加所需的约束,如下所示:

    topConstraint = NSLayoutConstraint(
        item: contentViewIB2
        , attribute: NSLayoutAttribute.Top
        , relatedBy: .Equal
        , toItem: contentViewIB2.superview
        , attribute: NSLayoutAttribute.Top
        , multiplier: 1.0
        , constant: 0)

    leftConstraint = NSLayoutConstraint(
        item: contentViewIB2
        , attribute: NSLayoutAttribute.Left
        , relatedBy: .Equal
        , toItem: contentViewIB2.superview
        , attribute: NSLayoutAttribute.Left
        , multiplier: 1.0
        , constant: 0)
class FlippedView: NSView {
    override var flipped:Bool {
        get {
            return true
        }
    }
}

在向contentViewIB2添加对象时,我会调整其宽度和高度。

由于documentView似乎从左上角开始,其坐标系必须翻转。 您可以通过如下子类化NSView来翻转它:

    topConstraint = NSLayoutConstraint(
        item: contentViewIB2
        , attribute: NSLayoutAttribute.Top
        , relatedBy: .Equal
        , toItem: contentViewIB2.superview
        , attribute: NSLayoutAttribute.Top
        , multiplier: 1.0
        , constant: 0)

    leftConstraint = NSLayoutConstraint(
        item: contentViewIB2
        , attribute: NSLayoutAttribute.Left
        , relatedBy: .Equal
        , toItem: contentViewIB2.superview
        , attribute: NSLayoutAttribute.Left
        , multiplier: 1.0
        , constant: 0)
class FlippedView: NSView {
    override var flipped:Bool {
        get {
            return true
        }
    }
}
然后将其分配给contentViewIB2:

Var contentViewIB2 : FlippedView
Swift 4.2

覆盖变量已重命名为“isFlipped”。其他一切都很好

class FlippedView: NSView {
    override var isFlipped:Bool {
        get {
            return true
        }
    }
}

documentView似乎从左上角开始,其坐标系必须翻转。 您可以通过如下子类化NSView来翻转它:

    topConstraint = NSLayoutConstraint(
        item: contentViewIB2
        , attribute: NSLayoutAttribute.Top
        , relatedBy: .Equal
        , toItem: contentViewIB2.superview
        , attribute: NSLayoutAttribute.Top
        , multiplier: 1.0
        , constant: 0)

    leftConstraint = NSLayoutConstraint(
        item: contentViewIB2
        , attribute: NSLayoutAttribute.Left
        , relatedBy: .Equal
        , toItem: contentViewIB2.superview
        , attribute: NSLayoutAttribute.Left
        , multiplier: 1.0
        , constant: 0)
class FlippedView: NSView {
    override var flipped:Bool {
        get {
            return true
        }
    }
}
然后将其分配给contentViewIB2:

Var contentViewIB2 : FlippedView
Swift 4.2

覆盖变量已重命名为“isFlipped”。其他一切都很好

class FlippedView: NSView {
    override var isFlipped:Bool {
        get {
            return true
        }
    }
}

这是我的项目,以防…:这是我的计划,以防万一()