[英]Where is the window outlet in an NSDocument
我的应用程序已从非基于文档的应用程序转换为基于文档的应用程序。 我通过创建NSDocument
的子类Document
做到这一点。 我还创建了一个Document.xib
并将其“文件所有者”设置为Document
。
现在在Document.xib
,我可以看到其“文件所有者”中有一个window
出口。 我没有在Document
定义的window
出口。 它从何而来? 我猜它来自超类NSDocument
,但是我无法访问Document
该变量。 奇怪的window
风口怎么了?
看看-[NSDocument setWindow:]
的文档
如果文件的所有者窗口出口已连接到该笔尖,则在加载此文件为其文件所有者的任何笔尖期间,将自动调用此方法。 您不应直接调用此方法,通常也不会覆盖它。
NSDocument
不会直接处理NSWindow
,但是会保留一个NSWindowController
列表,您可以通过-[NSDocument windowControllers]
方法访问。 我的猜测是,调用setWindow:
时,它将窗口包装在新的NSWindowController
并将其添加到列表中。
您应该可以使用以下内容访问窗口:
NSWindowController* controller = self.windowControllers.lastObject;
NSWindow* window = controller.window;
我刚刚创建了一个新项目对其进行测试,并且可以正常工作:
- (void)windowControllerDidLoadNib:(NSWindowController *)aController {
[super windowControllerDidLoadNib:aController];
NSLog(@"%@", [self.windowControllers.lastObject window]);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.