在NSWindow中切换视图

时间:2012-04-30 09:55:36

标签: cocoa nswindow nswindowcontroller

我是Mac开发的新手(虽然我有很多iOS经验)而且我正在尝试在NSWindow中切换NSViewControllers。它非常简单:按下按钮时,显示第二个视图并隐藏第一个视图。这是我的代码:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    firstView = [[FirstView alloc] initWithNibName:@"FirstView" bundle:nil];
    [_window setContentView:menu.view];
}

- (IBAction)openSecondView:(id)sender {
    secondView = [[SecondView alloc] initWithNibName:@"SecondView" bundle:nil];
    [_window setContentView:game.view];
}

我确保调用该方法,并正确加载secondView。这有什么问题?

1 个答案:

答案 0 :(得分:3)

更简单的方法是将两个视图加载到内容视图中,并仅调整Alpha值。

- (void) switchToFirstView: (id) sender {
    [[_secondView animator] setAlphaValue: 0.0f];
    [[_firstView animator] setAlphaValue: 1.0f];
}

- (void) switchToSecondView: (id) sender {
    [[_secondView animator] setAlphaValue: 1.0f];
    [[_firstView animator] setAlphaValue: 0.0f];
}

我冒昧地使用动画师使转换渐渐消失,但如果您更喜欢即时切换,也可以不使用它。