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

时间:2010-04-15 19:55:16

标签: cocoa nib nswindowcontroller

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

self = [super initWithNibNamed:@"myNib"];
if (self != nil) {
    [self window];
}

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

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

2 个答案:

答案 0 :(得分:13)

谢谢@peter hosey。

[self close]; // will work only if your nib is wired up correctly.

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

答案 1 :(得分:6)

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

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

但是因为你在一个窗口控制器中,只有send yourself a close message

另请参阅基于文档的应用程序概述中的“Window Closing Behavior”(基于文档的应用程序是窗口控制器的主要用户)。