Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 如何关闭窗口(卸载笔尖)?_Cocoa_Nib_Nswindowcontroller - Fatal编程技术网

Cocoa 如何关闭窗口(卸载笔尖)?

Cocoa 如何关闭窗口(卸载笔尖)?,cocoa,nib,nswindowcontroller,Cocoa,Nib,Nswindowcontroller,我有一个自定义的NSWindowController子类,它在初始化过程中加载一个NIB文件,如下所示: self = [super initWithNibNamed:@"myNib"]; if (self != nil) { [self window]; } nib包含一些自定义视图和一些其他控件。NSWindowController是文件的所有者,至少有一个视图绑定到该文件 简单地说,我需要做什么来关闭和释放窗口?我花了一整天的时间想弄明白,但我还是一窍不通;“加载”就是简单地取消

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

self = [super initWithNibNamed:@"myNib"];
if (self != nil) {
    [self window];
}
nib包含一些自定义视图和一些其他控件。
NSWindowController
是文件的所有者,至少有一个视图绑定到该文件


简单地说,我需要做什么来关闭和释放窗口?我花了一整天的时间想弄明白,但我还是一窍不通;“加载”就是简单地取消归档其中归档的对象。这不是一个无限期持续的状态;这是一个瞬间的动作。一旦您取消了对象的归档,它从何而来并不重要

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

  • 要想关上窗户,你需要
  • 要关闭和释放窗口,您需要在发送
    close
    消息之前打开(可以在IB中执行此操作),或者在
    close
    消息之后发送
    release
    消息
但是,由于您在窗口控制器中,所以只需

另请参见基于文档的应用程序概述(基于文档的应用程序是窗口控制器的主要用户)。

谢谢@peter hosey

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

打开文件的nib。在窗口上,您需要将窗口的“引用出口”连接到“文件所有者”并选择“窗口”。否则什么都不行。

谢谢@John Ballinger!你救了我两天!!!你添加的正确设置笔尖就是线索。绝对是“为什么不关闭工作?!”的快速解决方案