Notifications NSSplitView拆分器窗格更改通知

Notifications NSSplitView拆分器窗格更改通知,notifications,splitter,nssplitview,Notifications,Splitter,Nssplitview,您好,我需要在Maya、3ds max、Blender或其他类似建模工具中实现四视图拆分器。我在编辑器的Mac端使用NSSplitView,我需要知道用户何时拖动一个窗格以同步另一个窗格。 有没有办法从一个NSSplitView获取新的大小,并将另一个视图同步到该视图?我在这个编辑器的C#版本中有适用于Windows窗体的工作代码,但我不知道如何在Mac上实现它。完整的源代码位于 非常感谢。我用以下代码修复了它: - (void)splitViewDidResizeSubviews:(NSNot

您好,我需要在Maya、3ds max、Blender或其他类似建模工具中实现四视图拆分器。我在编辑器的Mac端使用NSSplitView,我需要知道用户何时拖动一个窗格以同步另一个窗格。
有没有办法从一个NSSplitView获取新的大小,并将另一个视图同步到该视图?我在这个编辑器的C#版本中有适用于Windows窗体的工作代码,但我不知道如何在Mac上实现它。完整的源代码位于


非常感谢。

我用以下代码修复了它:

- (void)splitViewDidResizeSubviews:(NSNotification *)notification
{
    NSSplitView *splitView = (NSSplitView *)[notification object];
    NSView *topSubview0 = (NSView *)[[topSplit subviews] objectAtIndex:0];
    NSView *topSubview1 = (NSView *)[[topSplit subviews] objectAtIndex:1];

    NSView *bottomSubview0 = (NSView *)[[bottomSplit subviews] objectAtIndex:0];
    NSView *bottomSubview1 = (NSView *)[[bottomSplit subviews] objectAtIndex:1];

    if (fabsf([bottomSubview0 frame].size.width - [topSubview0 frame].size.width) >= 1.0f)
    {
        if (splitView == topSplit)
        {
            NSLog(@"topSplit");
            [bottomSubview0 setFrame:[topSubview0 frame]];
            [bottomSubview1 setFrame:[topSubview1 frame]];
        }
        else
        {
            NSLog(@"bottomSplit");
            [topSubview0 setFrame:[bottomSubview0 frame]];
            [topSubview1 setFrame:[bottomSubview1 frame]];
        }
    }
}