Xcode 8.2.1,Swift 3.0.2,macOS 10.12
我有一个NSSplitViewController,它有3个窗格(请注意NS;这是Mac应用程序)。
我正在尝试将最左边的窗格设置为始终具有固定的宽度,并且不能调整大小。我尝试了以下几点:
constrainMaxCoordinate和constrainMinCoordinate无效。最近还有没有其他人把这个弄到手?有很多关于这个话题的文章,但是他们的工具集已经有好几年了,他们的建议对我都没有用。谢谢!

发布于 2016-12-24 23:30:33
我终于弄明白了。我必须以编程方式设置一个自动布局约束。在故事板编辑器(Xcode 8.1)中无法对NSSplitViewItem设置约束。
我就是这样做的:
//This is my SplitViewController subclass
class MainSplitVC: NSSplitViewController {
//Outlet to the menu pane
@IBOutlet weak var menuPane: NSSplitViewItem!
override func viewDidLoad() {
super.viewDidLoad()
//Hard-code the width of the menu pane
NSLayoutConstraint(item: menuPane.viewController.view, attribute: NSLayoutAttribute.width, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.notAnAttribute, multiplier: 1, constant: 80).isActive = true
}
}我希望这能帮到别人。
发布于 2019-01-06 10:48:55
通常,应该将布局约束设置为子视图的子视图。
例如,如果左窗格中有一个NSOutlineView,只需将其宽度约束设置为固定值即可。
窗格视图的大小由其子视图的约束计算。


发布于 2022-09-12 17:02:24
如果您不使用布局约束来设置NSSplitViewItem的宽度,您可以使用如下代码:
splitViewController.splitView.setPosition(600, ofDividerAt: 0)https://stackoverflow.com/questions/41291314
复制相似问题