7

可能是一个非常简单的问题,但我无法理解它。

我想创建某种向导: AnNSWindow显示为另一个表单,NSWindow并且应该一个接一个地显示三个不同NSView的 s。

我想我应该创建一个 customNSWindowController和三个NSViewControllers 但我不知道如何设置控制器以及如何交换视图。

4

2 回答 2

12

简而言之,您的窗口控制器将实例化三个视图控制器,拥有一个主机视图,并添加-[NSView addSubview:]或删除-[NSView removeFromSuperView]视图控制器的视图作为主机视图的子视图。根据您构建代码的方式,您还可以使用-[NSView replaceSubview:with:]另一个子视图替换子视图。

Apple 的View Controller 示例代码使用视图控制器进行视图切换。

于 2011-02-20T11:04:01.037 回答
0

@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 获取视图。

于 2014-08-13T19:50:28.987 回答