我们有一个父Split视图(NSSplitView)和两个子视图Content和SideBar (侧边栏在右边)。
切换SideBar视图的最佳可可友好型方法是什么?
提示:我一直在尝试这样做,但我仍然有问题隐藏NSSplitView的分隔符。我怎么能做到这一点,同时又把它藏起来?
发布于 2012-03-23 18:22:17
这里有一个相当不错的教程,展示了如何做到这一点:解开NSSplitView之谜。
隐藏分隔符是在NSSplitView的委托方法splitView:shouldHideDividerAtIndex:中完成的。
如果你不喜欢NSSplitView的方式,你将不得不动画化帧大小,改变你自己。
发布于 2019-07-19 05:52:55
最简单的方法是如下所示-而且它是动画的:SWIFT 5
splitViewItems[1].animator().isCollapsed = true // Show side pane
splitViewItems[1].animator().isCollapsed = false // hide side pane发布于 2015-01-21 20:53:25
我从@Nathan的答案中写了一个Swift版本的链接中的内容,对我有用。在我的示例中,splitView设置在其他地方,可能是包含类上的实例属性:
func toggleSidebar () {
if splitView.isSubviewCollapsed(splitView.subviews[1] as NSView) {
openSidebar()
} else {
closeSidebar()
}
}
func closeSidebar () {
let mainView = splitView.subviews[0] as NSView
let sidepanel = splitView.subviews[1] as NSView
sidepanel.hidden = true
let viewFrame = splitView.frame
mainView.frame.size = NSMakeSize(viewFrame.size.width, viewFrame.size.height)
splitView.display()
}
func openSidebar () {
let sidepanel = splitView.subviews[1] as NSView
sidepanel.hidden = false
let viewFrame = splitView.frame
sidepanel.frame.size = NSMakeSize(viewFrame.size.width, 200)
splitView.display()
}这些函数可能会出现在类中,它们是给我的。如果您的splitView可以是nil,那么显然您必须检查它。这还假设您有两个子视图,一个在索引1处,因为sidePanel是您想要折叠的。
https://stackoverflow.com/questions/9837690
复制相似问题