gpt4 book ai didi

cocoa - 无法隐藏 NSSplitView 分隔线

转载 作者:行者123 更新时间:2023-12-03 16:21:11 24 4
gpt4 key购买 nike

我有一个分割 View ,如下所示:

|来源 |过滤器|列表 |详情|

我想以编程方式隐藏过滤器,因此在我使用的 NSSplitView 委托(delegate)中

-(BOOL)splitView:(NSSplitView *)splitView shouldHideDividerAtIndex:(NSInteger)dividerIndex

隐藏我正在使用的过滤器部分

[[[[self splitView] subviews] objectAtIndex:1] setHidden:YES];
[[self splitView] adjustSubviews];

隐藏之前: enter image description here隐藏后: enter image description here

我在子类中将分隔线设为红色,以便更容易地看到正在发生的情况。两个分隔线仍然在那里 - 彼此相邻,但右侧的分隔线应该完全消失。

发生这种情况是因为我试图隐藏不在边缘的 subview 吗?也许它只适用于索引 0 和 max?

我怎样才能做到这一点?

最佳答案

您可能只想设置分隔线的正确位置:

 splitView.setPosition(splitView.bounds.width, ofDividerAtIndex: 0)

并且还重写另一个委托(delegate)方法以允许折叠您的 View :

    func splitView(splitView: NSSplitView, canCollapseSubview subview: NSView) -> Bool {
//You may choose which view you allow to collapse here...
return true
}

func splitView(splitView: NSSplitView, shouldHideDividerAtIndex dividerIndex: Int) -> Bool {
return true
}

我在这里为您创建了一个测试项目:

https://github.com/emankovski/CollapseSplitViews

关于cocoa - 无法隐藏 NSSplitView 分隔线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41700150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com