NSSplitView:如何不用窗口调整大小,只能以"手动"方式调整大小?

Luc*_*uca 5 objective-c nssplitview

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

编辑.这是我添加的代码,并且出于某种原因出错:左窗格(sourceView)在调整窗口大小时保持相同的大小,但右窗格具有正确的自动布局约束(在不实现下面的方法的情况下工作正常) .NSSrollView是左窗格,我不想保持在同一位置,而另一个视图可能会随窗口调整大小.

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

    return YES;

}
Run Code Online (Sandbox Code Playgroud)

有人知道快速解决方案吗?谢谢!

小智 6

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

@synthesize leftView;

- (BOOL)splitView:(NSSplitView *)splitView shouldAdjustSizeOfSubview:(NSView *)subview {
    if (subview == leftView) return NO;
    else return YES;
}
Run Code Online (Sandbox Code Playgroud)


Ham*_*yun 5

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


gai*_*ige 0

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

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