7

我有一个简单的垂直NSSplitView,当我调整窗口大小时我不想保持他的大小,但我希望NSSplitView在拖动分隔两个视图的垂直条时允许手动调整大小。

编辑。这是我添加的代码,由于某种原因,一切都出错了:左窗格(sourceView)在调整窗口大小时保持相同的大小,但右窗格具有正确的自动布局约束(在不实现以下方法的情况下运行良好) . NSSrollView 是左窗格,我不想保持在同一位置,其他视图可能会随窗口调整大小。

- (BOOL)splitView:(NSSplitView *)splitView shouldAdjustSizeOfSubview:(NSView *)subview
{
    if ([subview class] == [NSScrollView class])
        return NO;

    return YES;

}

有人知道这样做的快速解决方案吗?谢谢!

4

3 回答 3

6

在 Xcode 4.6 中,垂直拆分视图的左侧自定义视图不是 NSScrollView

@synthesize leftView;

- (BOOL)splitView:(NSSplitView *)splitView shouldAdjustSizeOfSubview:(NSView *)subview {
    if (subview == leftView) return NO;
    else return YES;
}
于 2013-04-16T20:47:26.110 回答
4

尝试将拆分视图项目的行为设置为侧边栏

于 2017-07-15T04:35:39.213 回答
0

您需要实施NSSplitViewDelegate. 特别是,您需要确保返回NOfor -splitView:shouldAdjustSizeOfSubview:,这将阻止自动调整大小。

由于您在每个 splitView 中至少有 2 个子视图,因此您需要确定您不想移动哪个子视图,因此NO只为它和YES您要更改的视图返回。因此,例如,如果您有一个源列表,并且您希望它保持不变,除非是手动操作,NO请返回源列表和YES另一侧。

于 2013-03-25T23:36:38.480 回答