NSView,NSViewController和MainMenu.xib究竟是如何组合在一起的?

Ben*_*ock 2 cocoa interface-builder nsview nib nsviewcontroller

我要切入追逐:我的应用程序已经增长了很多,现在我觉得是时候做一些整理了.我想将我的一些视图从我的MainMenu.xib文件中分离到他们自己的Nib文件中.绊倒我的部分是整个"Interface Builder + My Code"的事情.这是我到目前为止所做的:

  1. 我添加了一个视图控制器代理对象:
    在Interface Builder对象浏览器中查看Controller对象

  2. Identity检查器中,我已将视图控制器的类名添加到Custom Class字段中.
    Interface Builder中的Identity Inspector

  3. 在" 属性"检查器中,我输入了要加载的笔尖的名称. Interface Builder中的Nib Name字段

  4. 我已将视图控制器对象的视图插座连接到MainMenu.xib中的现有视图.
    在Interface Builder中查看View Controller上的Outlet

  5. 最后,我点击Cmd + R,我的观点不存在.
    [在这里插入FFFFUUUUU meme的图像.]

我错过了什么?过去两周我一直盯着我的Mac日复一日,所以如果我完全遗漏了一些东西,我也不会感到惊讶.如果有人看到我的n00b方式,并愿意指出我正确的方向,我会非常感激.谢谢.

NSA*_*ict 7

你几乎得到了它.

我在Github上发布了一个演示项目,仅供您使用;)


最后,您需要将视图实际添加到窗口中.在您AppDelegate或您认为合适的地方执行此操作.

- (void)awakeFromNib {
    [self.window.contentView addSubview:self.customViewController.view];
    [self.customViewController.view setFrame:[self.window.contentView bounds]];
}
Run Code Online (Sandbox Code Playgroud)

或者,您首先需要为视图控制器创建一个插座:

@property (assign) IBOutlet ITCustomViewController *customViewController;
Run Code Online (Sandbox Code Playgroud)