gpt4 book ai didi

cocoa - NSSplitView:在窗口调整大小期间控制分隔线位置

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

我有一个 NSSplitView,它有两个 Pane - 左侧是侧边栏表格 View ,右侧是 Web View 。我还有一个委托(delegate)集,用于处理侧边栏的约束,如下所示:

- (CGFloat)splitView:(NSSplitView *)splitView constrainMaxCoordinate:(CGFloat)proposedMax ofSubviewAt:(NSInteger)dividerIndex {
return 500.0f;
}

- (CGFloat)splitView:(NSSplitView *)splitView constrainMinCoordinate:(CGFloat)proposedMinimumPosition ofSubviewAt:(NSInteger)dividerIndex {
return 175.0f;
}

- (BOOL)splitView:(NSSplitView *)splitView canCollapseSubview:(NSView *)subview {
return NO;
}

这意味着侧边栏的大小只能在 175 到 500 像素之间调整,并且在使用分隔 handle 时效果很好。但是,当调整整个窗口的大小时,分隔线会重新定位以摆脱这些限制。

有人知道如何控制吗?

此外:如果我想存储用户对侧边栏宽度的选择,将其读出、保存到首选项文件并稍后恢复是否是一个好主意,或者是否有更直接的方法来执行此操作?我注意到在某些情况下窗口的状态会被保存 - 这是普遍发生的情况还是我必须控制它?

提前致谢

阿恩

最佳答案

我最初实现了 NSSplitView 委托(delegate)函数,并最终使用了大量代码来尝试执行一些简单的操作,例如限制每个 Split View边的最小尺寸。

然后我改变了我的方法,找到了一个干净且极其简单的解决方案。我只需在 NSSplitView 一侧的 NSView 上设置一个宽度自动布局常量(>= 我想要的最小尺寸)。我在另一边也做了同样的事情。有了这两个简单的约束,NSSplitView 就可以完美工作,无需委托(delegate)调用。

关于cocoa - NSSplitView:在窗口调整大小期间控制分隔线位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9471924/

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