基于文档的Cocoa应用程序和控制器交互

时间:2014-09-16 09:50:33

标签: objective-c cocoa pdf quartz-2d document-based

我正在尝试制作管理和打开PDF文件的应用程序。它是基于文档的。在我的UI设计器中,我有一个NSSplitView,左边是NSTableView,右边是PDFView(来自PDF Kit)。

我有一个NSTableView的控制器类,它为当前目录中的每个PDF文件添加一行,为我的PDFView添加一个控制器类,其中包含加载PDF数据的方法。他们都有连接到各自对象的插座。

我不确定所有这些控制器应该如何互动。我已经尝试在我的Document类的windowControllerDidLoadNib方法中实例化对象,如下所示:

tableViewController = [[TableViewController alloc] init];
pdfViewController = [[PDFViewerController alloc] init];

然后在readFromData方法中加载PDF文件,如下所示:

[pdfViewController loadPDFFromData: data];

但它似乎根本没有做任何事情。

我怀疑我没有使用正确的PDFViewerController对象但是我不确定如何访问那里的那个...最终目标是将NSTableView中所选行引用的PDF文件加载到PDFView,但我不知道这些对象应该如何交互。应该将所有这些结合在一起的胶水是什么?

1 个答案:

答案 0 :(得分:0)

我不确定在这里使用NSDocument的好处。对于"胶水代码",您可以让Window Controller处理交互。从表视图中选择项目时,您将在PDF视图中加载该文件。如果您对绑定感到满意,也可以使用阵列控制器实现相同的功能。希望有所帮助。