我有一个自定义NSWindowController
子类,它在初始化期间加载NIB文件,如下所示:
self = [super initWithNibNamed:@"myNib"];
if (self != nil) {
[self window];
}
nib包含一些自定义视图和一些其他控件。 NSWindowController
是文件的所有者,至少有一个视图甚至绑定它。
简单地说,关闭和释放该窗口我需要做什么?我花了一整天的时间试图解决这个问题,我仍然无能为力。
答案 0 :(得分:13)
谢谢@peter hosey。
[self close]; // will work only if your nib is wired up correctly.
打开文件的笔尖。在窗口上,您需要将窗口的“引用插座”连接到“文件所有者”,然后选择窗口。否则什么都行不通。
答案 1 :(得分:6)
你没有卸下笔尖; “加载”它只是取消归档在其中存档的对象。这不是一个无限期持续的状态;这是一个短暂的行动。一旦你取消归档该对象,它的来源并不重要。
如果您不在窗口控制器中,那么:
close
message。close
消息之前打开its releasedWhenClosed
property(您可以在IB中执行此操作),或者发送{{1} release
消息之后的消息。但是因为你在一个窗口控制器中,只有send yourself a close
message。
另请参阅基于文档的应用程序概述中的“Window Closing Behavior”(基于文档的应用程序是窗口控制器的主要用户)。