首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Swift设置NSSplitViewController窗格的宽度

使用Swift设置NSSplitViewController窗格的宽度
EN

Stack Overflow用户
提问于 2016-12-22 20:38:13
回答 3查看 3.1K关注 0票数 5

Xcode 8.2.1,Swift 3.0.2,macOS 10.12

我有一个NSSplitViewController,它有3个窗格(请注意NS;这是Mac应用程序)。

我正在尝试将最左边的窗格设置为始终具有固定的宽度,并且不能调整大小。我尝试了以下几点:

  • 由于某些原因,在窗格子视图的Storyboard编辑器中无法使用自动布局约束。
  • 设置constrainMaxCoordinateconstrainMinCoordinate无效。

最近还有没有其他人把这个弄到手?有很多关于这个话题的文章,但是他们的工具集已经有好几年了,他们的建议对我都没有用。谢谢!

EN

回答 3

Stack Overflow用户

发布于 2016-12-24 23:30:33

我终于弄明白了。我必须以编程方式设置一个自动布局约束。在故事板编辑器(Xcode 8.1)中无法对NSSplitViewItem设置约束。

我就是这样做的:

代码语言:javascript
复制
//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
  }
}

我希望这能帮到别人。

票数 9
EN

Stack Overflow用户

发布于 2019-01-06 10:48:55

通常,应该将布局约束设置为子视图的子视图。

例如,如果左窗格中有一个NSOutlineView,只需将其宽度约束设置为固定值即可。

窗格视图的大小由其子视图的约束计算。

票数 1
EN

Stack Overflow用户

发布于 2022-09-12 17:02:24

如果您不使用布局约束来设置NSSplitViewItem的宽度,您可以使用如下代码:

代码语言:javascript
复制
splitViewController.splitView.setPosition(600, ofDividerAt: 0)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41291314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档