gpt4 book ai didi

cocoa - 每个文档多个窗口(基于 Cocoa 文档的应用程序)

转载 作者:行者123 更新时间:2023-12-03 16:35:45 25 4
gpt4 key购买 nike

假设我创建了一个新的 Cocoa 应用程序,并在创建项目时使用基于文档的应用程序。它将有一个窗口,来自 NSDocument 子类的窗口。如何才能使两个(或更多)窗口属于每个文档?

我已经使用 .xib 文件创建了一个 NSWindowController 子类,我在其中创建了界面。我怎样才能显示这个窗口? NSWindowController 子类和 NSDocument 子类之间的通信是如何工作的?

(我使用核心数据,因此它实际上是一个 NSPersistentDocument 子类,但我认为这对于这个特定问题并不重要。)

最佳答案

在你的 NSDocument 中

//Lazy instantiation of window controller
- (AdditionalWindowController *)additionalWC {
if (!_additionalWC) {
_additionalWC = [[AdditionalWindowController alloc] initWithWindowNibName:@"AdditionalWindow"];
}
return _additionalWC;
}

- (IBAction)openAdditionalWindow:(id)sender {
self.additionalWC.document = self;
[self.additionalWC showWindow:self];
}

- (IBAction)openAdditionalWindow:(id)sender {
//addWindowController ignores redundant invocations.
[self addWindowController:self.additionalWC];
[self.additionalWC showWindow:self];
}

在你的AdditionalWindowController中你可以随时调用

id document = [self document];
//do what ever you want e.g. somethingDidChanged | direct method call of your document

关于cocoa - 每个文档多个窗口(基于 Cocoa 文档的应用程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25382903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com