1

我正在使用 Xcode 4 为 OSX (Lion) 编写应用程序。

用这个和互联网撞到了一点墙,到目前为止,事实证明这并不是特别有用。

我定义了一个文档,以及 MainMenu.xib 和一个文档窗口;文档窗口当然是在加载/创建文档时创建的,因此可以访问相关数据。

我想在这个项目中尽可能多地使用 Cocoa Bindings,所以我的问题是:

如果我创建另一个视图(假设是一个带有链接 Nib 的 NSViewController);我如何允许它访问文档的数据?

我尝试为文档类添加#import,但是当我将文档类上的#import 添加到视图控制器(以创建它)时,这会导致问题——我得到未知类型的编译错误。

我还沿着传递临时对象的路线(甚至在创建视图控制器后访问 getter / setter);肯定有更好,更清洁的方法吗?

该应用程序只有一个 NSWindowController(默认),就是它,它是来自 XCode 非核心数据基于文档的应用程序模板的香草。

谢谢你的帮助,克林特

4

1 回答 1

1

如果要绑定到其他类中,则需要引用某种文档。由于您已经在使用 an ,NSViewController您可以将 的 设置representedObjectNSViewController您的文档。或者,您可以子类NSViewController化并创建一个自定义属性来引用文档。

YourViewController* controller = [[YourViewController alloc] initWithNibName:@"YourNib" bundle:nil];
[controller setRepresentedObject:yourDocument];

然后,在 Interface Builder 中,您可以使用representedObject.<some property of your document>.

于 2011-08-16T00:39:59.040 回答