在NSView之间切换

时间:2010-08-04 20:26:14

标签: cocoa nsview

我有一个NSView,里面有两个视图。我试图隐藏一个视图并显示另一个视图,但视图不会改变。

我尝试了setHidden,removeFromSuperview,addSubview在前面,一切。第一个视图仍在那里,另一个视图不会显示出来。我做错了什么?

谢谢你, -Albé

4 个答案:

答案 0 :(得分:3)

在viewOne和viewTwo之间切换:

首先将视图添加到主视图

- (void)awakeFromNib {
    [self.view addSubview:self.viewOne];
}

替换子视图

[self.view replaceSubview:self.viewOne with:self.viewTwo];

使用动画:

选择容器视图,并在核心动画层中进行检查,然后在下面选择转换。

enter image description here

使用动画切换视图:

[[self.view animator] replaceSubview:self.viewOne with:self.viewTwo];

答案 1 :(得分:1)

只要每个子视图都与它有关联(IBOutlet),那么您应该可以使用[superView replaceSubview:oldView with:newView];

答案 2 :(得分:1)

除了MikeSwan的建议外,您还可以使用NSViewAnimation(或许多其他技术)来设置过渡动画。

答案 3 :(得分:1)

您还可以将两个视图放入tabless选项卡视图中,只需设置选项卡视图的选定选项卡索引。