首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSTabView阻止关闭NSSplitView子视图

NSTabView阻止关闭NSSplitView子视图
EN

Stack Overflow用户
提问于 2022-07-25 17:00:27
回答 1查看 25关注 0票数 0

我有一个复杂的应用程序,在这个应用程序中,我使用NSSplitView创建各种侧边栏,这些侧边栏可以用重力打开/关闭(即,将拆分条拖到足够近的边缘,视图就会完全关闭),就像XCode在它的UI中一样。

当被隐藏的嵌套视图不包含splitView(_:constrainSplitPosition:ofSubviewAt:) / NSTabViewControllerView时,利用NSTabViewControllerView的效果很好,但是如果它这样做了,则窗口拒绝完全关闭,使得tabView可见。

代码语言:javascript
复制
class ViewController: NSViewController, NSSplitViewDelegate {

    override func viewDidLoad() {

        super.viewDidLoad()
        splitView.delegate = self
    }

    @IBOutlet var splitView: NSSplitView!
    @IBOutlet var tabView: NSTabView!
    
    let gravityTolerance: CGFloat = 180.0
    
    func splitView(
        _ splitView: NSSplitView,
        constrainSplitPosition proposedPosition: CGFloat,
        ofSubviewAt dividerIndex: Int
    ) -> CGFloat {
        
        print("proposed splitter width: \(dividerIndex) => \(proposedPosition)")
        
        var retVal = proposedPosition
        
        if dividerIndex == 0 {
            if proposedPosition <= gravityTolerance {
               // tabView.isHidden = true
                retVal = 0.0
            } else {
              //  tabView.isHidden = false
            }
        }
        
        return retVal
    }
}

将选项卡视图设置为"isHidden“没有什么区别,而且我非常肯定,如果我手动编写代码,所有这些都会正常工作。但是,是否有一些简单的修正(可能是约束)是我遗漏的呢?

EN

回答 1

Stack Overflow用户

发布于 2022-07-26 15:52:11

从Willeke的评论..。就像一种魅力。似乎有很多特定于苹果的支持是我所不知道的:(很明显,我们可以得到比这个更好的支持)。

代码语言:javascript
复制
 func splitView(
        _ splitView: NSSplitView,
        canCollapseSubview subview: NSView
    ) -> Bool
    
    {
        return true
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73112864

复制
相关文章

相似问题

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