我正在使用 Xcode 4 编写 OSX (Lion) 应用程序。
到目前为止,这个问题和互联网已经被证明不是特别有帮助。
我定义了一个文档,以及 MainMenu.xib 和一个文档窗口;文档窗口当然是在加载/创建文档时创建的,因此可以访问相关数据。
我想在这个项目中尽可能多地利用 Cocoa Bindings,所以我的问题是:
如果我创建另一个 View (假设一个带有链接 Nib 的 NSViewController);我如何允许它访问文档的数据?
我尝试为文档类添加 #import,但是当我将文档类上的 #import 添加到 View Controller (以创建它)时,这会导致问题 - 我收到未知类型编译错误。
我还沿着传递临时对象的路线(甚至在创建 View Controller 后访问 getters/setters);肯定有更好、更干净的方法吗?
该应用程序只有一个 NSWindowController(默认),仅此而已,它是来自 XCode 非核心数据基于文档的应用程序模板的普通版本。
感谢您的帮助, 克林特
最佳答案
如果你想绑定(bind)到它,你需要在其他类中引用某种文档。因为您已经在使用 NSViewController
您可以设置representedObject
NSViewController
的到您的文档。或者,您可以子类 NSViewController
并创建一个自定义属性来引用该文档。
YourViewController* controller = [[YourViewController alloc] initWithNibName:@"YourNib" bundle:nil];
[controller setRepresentedObject:yourDocument];
在 Interface Builder 中,您可以使用键路径 representedObject.<some property of your document>
将 View Controller Nib 中的对象绑定(bind)到文件所有者 .
关于objective-c - 在各种 View / Nib 之间共享用于绑定(bind)的对象(特别是 NSDocument),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7070698/