首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSSplitView拆分器窗格更改通知

NSSplitView拆分器窗格更改通知
EN

Stack Overflow用户
提问于 2009-12-21 05:49:27
回答 1查看 960关注 0票数 2

你好,我需要实现四个视图拆分器,如在Maya,3ds max,Blender或其他类似的建模工具。我在编辑器的Mac端使用NSSplitView,我需要知道用户何时拖动一个窗格来同步另一个窗格。

有没有办法从一个NSSplitView获取新的大小,并将另一个视图同步到它?我有这个编辑器的C#版本的Windows Forms的工作代码,但我不知道如何在Mac上做它。完整的源代码在http://github.com/filipkunc/opengl-editor-cocoa上。

非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-12-27 04:45:46

我用下面的代码修复了这个问题:

代码语言:javascript
复制
- (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]];
        }
    }
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1937190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档