这可能是一个很简单的问题,但我想不通。
我想创建某种向导:一个NSWindow显示为来自另一个NSWindow的工作表,并且应该依次显示三个不同的NSView。
我想我应该创建一个自定义的NSWindowController和三个NSViewController,但我不知道如何设置控制器和如何交换视图。
发布于 2011-02-20 19:04:01
简而言之,您的窗口控制器将实例化这三个视图控制器,拥有一个宿主视图,并将视图控制器的视图作为宿主视图的子视图添加或移除( -[NSView addSubview:] or -[NSView removeFromSuperView] )。根据您的代码结构,您还可以使用-[NSView replaceSubview:with:]将一个子视图替换为另一个子视图。
苹果View Controller sample code的特点是使用视图控制器进行视图切换。
发布于 2014-08-14 03:50:29
@Bavarious asnwer很好,像我这样的人总是需要一个很好的代码片段:
appDelegate = (AppDelegate*)[[NSApplication sharedApplication] delegate];
self.masterViewController = [[MasterViewController alloc] initWithNibName:@"MasterViewController" bundle:nil];
[appDelegate.window.contentView replaceSubview:self.view with:self.masterViewController.view];我创建appDelegate对象是因为它是从NSViewController调用的,否则您可以从self获得视图。
https://stackoverflow.com/questions/5056374
复制相似问题