gpt4 book ai didi

swift - NSSplitView 部分崩溃

转载 作者:行者123 更新时间:2023-11-30 14:15:37 26 4
gpt4 key购买 nike

我有一个带有两个水平 subview 的 NSSplitView。左边是 NSOutlineView,右边是 NSTableView。左 View 对宽度有两个约束:1) >= 150 和 2) <= 200。所以我有一个最小和最大宽度。

func splitView(splitView: NSSplitView, canCollapseSubview subview: NSView) -> Bool {我回来true对于左 subview 。这可行,但完全隐藏了左 View (正如它应该的那样)。

我的目标是,与正常方式不同,左 View 仅折叠到 50 像素。有什么方法可以达到这个目的吗?我考虑过编码……在func splitView(splitView: NSSplitView, resizeSubviewsWithOldSize oldSize: NSSize) ,但这在使用自动布局时不是正确的方法(我尝试过,但是设置 subview 的框架会导致每次更改 Splitview 分隔符时重新加载 NSTableView (这会导致 tableview 丢失每个选择)。

最佳答案

首先,无论你想如何称呼这种行为,它都不是 Cocoa 所说的折叠 subview 。所以,不要再考虑崩溃了。

其次,您不能指定最小宽度约束,然后期望系统忽略它。如果您希望 View 有时只有 50 点宽,则不能设置 >= 150 点的约束。

您可以尝试实现委托(delegate)方法 splitView(_:constrainSplitPosition:ofSubviewAt:) 以使分隔线位置“捕捉”到 150 点限制和 50 点限制。也就是说,它可以允许任何位置 >= 150 点。对于100到150点之间的位置,它会将其调整为150点。低于100分的仓位,会调整为50分。

关于swift - NSSplitView 部分崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31230069/

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