Macos 当子视图更改时,更改NSSplitView中的分隔符位置

Macos 当子视图更改时,更改NSSplitView中的分隔符位置,macos,cocoa,nsview,nssplitview,Macos,Cocoa,Nsview,Nssplitview,我有一个带有四个子视图的NSSplitView。每个子视图都有一个带有一些文本的标题和一个开/关复选框,下面是一个NSTableView。用户可以使用复选框切换表的可见性 如果表格在程序启动时可见,并且用户取消选中复选框,则表格将消失。子视图因此变得更小 如何使我的NSSplitView对此作出反应(通过调整分隔符)?要以编程方式设置分隔符的位置,请在NSSplitView上调用 我想出来了,但也许我的问题需要澄清。除了移动分隔符外,我还想更改子视图的边界。因此:用户使表折叠->子视图的边界相应

我有一个带有四个子视图的
NSSplitView
。每个子视图都有一个带有一些文本的标题和一个开/关复选框,下面是一个
NSTableView
。用户可以使用复选框切换表的可见性

如果表格在程序启动时可见,并且用户取消选中复选框,则表格将消失。子视图因此变得更小


如何使我的
NSSplitView
对此作出反应(通过调整分隔符)?

要以编程方式设置分隔符的位置,请在NSSplitView上调用

我想出来了,但也许我的问题需要澄清。除了移动分隔符外,我还想更改子视图的边界。因此:用户使表折叠->子视图的边界相应更改->通知nssplitview重新分配分隔符。我不知道如何正确地使子视图在其内容减少时更改大小(即,表消失)。您是否尝试在子视图上调用
-setBounds:
?您可以使用该方法将其设置为任意大小。通过使用
-setNeedsUpdateConstraints:
,您也可以让autolayout执行您想要的操作,但是您可能必须为此从子视图中删除表--即使视图被隐藏,约束仍然适用。