我正在开发一个简单的 OS X Cocoa 应用程序,其中用户填写表单,应用程序执行一些在其他字段中弹出的计算。
我从 Xcode 6.3.2(适用于 Yosemite)上默认的基于文档的应用程序模板开始。该模板包含 NSDocument 的子类和 NSViewController 的子类。该接口在 Storyboard 中定义。NSDocument 在 makeWindowControllers 中从 Storyboard 初始化接口。
我在将接口片段绑定到 ViewController 的representedObject 时遇到了麻烦——结果我绑定到了 nil。ViewController 的 setRepresentedObject 方法永远不会被调用。
我尝试让 ViewController 在 viewDidLoad 中调用 setRepresentedObject 本身,但当时尚未设置 WindowController 的文档属性(它返回 nil)。
我不清楚是否可以从 NSDocument 获取 ViewController 的实例 - NSDocument 知道它的 window/WindowController,但我不确定如何从这些类中找到 ViewController。
我想知道 Xcode/Apple 的惯用方式来做到这一点。无论是通过故事板视图还是在我的代码中以编程方式实现。
如果可能的话,我还想避免代码耦合得太紧密。