你好,我需要实现四个视图拆分器,如在Maya,3ds max,Blender或其他类似的建模工具。我在编辑器的Mac端使用NSSplitView,我需要知道用户何时拖动一个窗格来同步另一个窗格。
有没有办法从一个NSSplitView获取新的大小,并将另一个视图同步到它?我有这个编辑器的C#版本的Windows Forms的工作代码,但我不知道如何在Mac上做它。完整的源代码在http://github.com/filipkunc/opengl-editor-cocoa上。
非常感谢。
发布于 2009-12-27 04:45:46
我用下面的代码修复了这个问题:
- (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]];
}
}
}https://stackoverflow.com/questions/1937190
复制相似问题