从 NSWindowController 子类访问 NSDocument?

Accessing NSDocument from NSWindowController subclass?

我正在创建基于文档的简单应用程序。到目前为止,我已经实现了 NSDocument 子类,即 Document 和 NSWindowController 子类,即 ToolbarWindowController。 ToolbarWindowController 控制工具栏,它有滑块来修改用户打开的图像。

我现在遇到的问题是在打开的图像上应用滤镜(修改图像):我不知道如何在 ToolbarWindowController 中使用打开的图像作为源。

F.e。当我在 Document 中打开图像时,我可以将其设置为 ViewController imageView,在 makeWindowControllers:

- (BOOL)readFromData:(NSData *)data ofType:(NSString *)typeName error:(NSError **)outError {
    image = [[NSImage alloc] initWithData:data];
    return YES;
}
- (void)makeWindowControllers {
    NSStoryboard* const storyboard = [NSStoryboard storyboardWithName:@"Main" bundle:nil];
    NSWindowController* const windowController = [storyboard instantiateControllerWithIdentifier:@"Document Window Controller"];
    [[((ViewController *)[windowController contentViewController]) imageView] setImage:image];

    [self addWindowController: windowController];
}

我能以某种方式访问​​我的 ToolbarWindowController properties/variables 并在那里创建一个 NSImage 属性 来修改打开的图像吗?或者我可以访问 Document 属性来实现相同的目的吗?它甚至可以那样工作吗?

NSWindowController 有一个 document 属性。如果一切都正确连接,属性 将指向拥有 NSWindowController.

NSDocument 对象