可能是一个非常简单的问题,但我无法理解它。
我想创建某种向导: AnNSWindow
显示为另一个表单,NSWindow
并且应该一个接一个地显示三个不同NSView
的 s。
我想我应该创建一个 customNSWindowController
和三个NSViewController
s 但我不知道如何设置控制器以及如何交换视图。
可能是一个非常简单的问题,但我无法理解它。
我想创建某种向导: AnNSWindow
显示为另一个表单,NSWindow
并且应该一个接一个地显示三个不同NSView
的 s。
我想我应该创建一个 customNSWindowController
和三个NSViewController
s 但我不知道如何设置控制器以及如何交换视图。
简而言之,您的窗口控制器将实例化三个视图控制器,拥有一个主机视图,并添加-[NSView addSubview:]
或删除-[NSView removeFromSuperView]
视图控制器的视图作为主机视图的子视图。根据您构建代码的方式,您还可以使用-[NSView replaceSubview:with:]
另一个子视图替换子视图。
Apple 的View Controller 示例代码使用视图控制器进行视图切换。
@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 获取视图。