如何关闭窗口(卸载NIB)?

bas*_*ibe 3 cocoa nib nswindowcontroller

我有一个自定义NSWindowController子类,在初始化期间加载NIB文件,如下所示:

self = [super initWithNibNamed:@"myNib"];
if (self != nil) {
    [self window];
}
Run Code Online (Sandbox Code Playgroud)

nib包含一些自定义视图和一些其他控件.这NSWindowController是文件的所有者,至少有一个视图甚至绑定它.

简单地说,关闭和释放该窗口我需要做什么?我花了一整天的时间试图解决这个问题,我仍然无能为力.

Joh*_*ger 13

谢谢@peter软管.

[self close]; // will work only if your nib is wired up correctly.
Run Code Online (Sandbox Code Playgroud)

打开文件的笔尖.在窗口上,您需要将窗口的"引用插座"连接到"文件所有者",然后选择窗口.否则什么都行不通.


Pet*_*sey 6

你没有卸下笔尖; "加载"它只是取消归档在其中存档的对象.这不是一个无限期持续的状态; 这是一个短暂的行动.一旦你取消归档该对象,它来自哪里并不重要.

如果您不在窗口控制器中,那么:

但是因为你在一个窗口控制器中,只需给自己发一条close消息.

另请参阅基于文档的应用程序概述中的"窗口关闭行为"(基于文档的应用程序是窗口控制器的主要用户).