notifications - NSSplitView 拆分器 Pane 更改通知

标签 notifications splitter nssplitview

您好,我需要实现四个 View 分割器,例如 Maya、3ds max、Blender 或其他类似的建模工具。我在编辑器的 Mac 端使用 NSSplitView,我需要知道用户何时拖动一个 Pane 来同步另一个 Pane 。
有没有办法从一个 NSSplitView 获取新大小并将另一个 View 同步到它?我在该编辑器的 C# 版本中有适用于 Windows 窗体的工作代码,但我不知道如何在 Mac 上执行此操作。完整源代码位于http://github.com/filipkunc/opengl-editor-cocoa .

非常感谢。

最佳答案

我用这段代码修复了它:

- (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]];
        }
    }
}

关于notifications - NSSplitView 拆分器 Pane 更改通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1937190/

相关文章:

Swift:从 appDelegate 更改 tabBar 图标

javascript - 轮询新消息警报/通知

GitHub 当有人关注我时收到一封电子邮件

objective-c - 使 NSSplitView 的分隔线不可拖动并且不显示拖动光标

objective-c - NSSplitView - 如何在 View 调整大小后收到通知?

objective-c - 侧边栏演示 - replaceSubview

android - 用于设置 Android Lollipop 中的通知的按钮

java - Java 中扩展名为 .00x 的文件合并

java - Camel split xml 保留一些节点

sql - 如何在MAC OSX中拆分SQL?