这里有一个相当不错的教程,展示了如何做到这一点:Unraveling the Mysteries of NSSplitView。 隐藏分隔符是在NSSplitView的委托方法splitView:shouldHideDividerAtIndex:中完成的。 如果你不喜欢NSSplitView的方式,你将不得不自己设置帧大小变化的动画。
// this is the declaration of a left vertical subview of
// 'splitViewController', which is the name of the split view's outlet
var leftView: NSView {
return self.splitViewController.subviews[0] as NSView
}
// here is the action of a button that toggles the left vertical subview
// the left subview is always restored to 100 pixels here
@IBAction func someButton(sender: AnyObject) {
if splitViewController.isSubviewCollapsed(leftView) {
splitViewController.setPosition(100, ofDividerAtIndex: 0)
leftView.hidden = false
} else {
splitViewController.setPosition(0, ofDividerAtIndex: 0)
leftView.hidden = true
}
}
6条答案
按热度按时间wlwcrazw1#
这里有一个相当不错的教程,展示了如何做到这一点:Unraveling the Mysteries of NSSplitView。
隐藏分隔符是在NSSplitView的委托方法splitView:shouldHideDividerAtIndex:中完成的。
如果你不喜欢NSSplitView的方式,你将不得不自己设置帧大小变化的动画。
iqih9akk2#
最简单的方法如下-它是动画的:[SWIFT 5]
km0tfn4u3#
我写了一个Swift版本的内容在链接从@Nathan的答案,对我有效。在我的示例中,
splitView
被设置在其他地方,可能是作为一个包含类的示例属性:这些函数可能会在一个类中的方法,它们是给我的。如果你的
splitView
可以是nil
,你显然需要检查。这也假设您有两个子视图和索引为1的一个,这里是sidePanel
是您想要折叠的子视图。ie3xauqp4#
在带有Storyboards的Xcode 9.0中打开Application Scene,选择View->Menu->Show sidebar。按住Ctrl键单击Show Sidebar,在已发送操作中删除提供的操作,单击x。从圆圈CTRL拖动到应用程序场景中的First Responder,然后选择要连接的ToggleSideBar。打开故事板,选择第一个拆分视图项,然后在属性检查器中将行为从默认更改为侧边栏。运行并尝试查看菜单项显示/隐藏。所有在接口生成器中完成,没有代码。toggleSideBar处理第一个拆分视图项。https://github.com/Dis3buted/SplitViewController
eit6fx6z5#
我用上面的代码得到了一些工件,可能是因为它脱离了上下文。我相信它在它应该在的地方工作。总之,这里有一个非常精简的实现:
要查看使用动画的好示例,请按住control键单击以下载this file。
sirbozc56#
如果您的
NSSplitView
控件是NSSplitViewController
对象的一部分,那么您可以简单地使用以下命令: