我有NSViewController
管理NSTableView
并注意到NSViewController
有representedObject
属性,但它不是IBOutlet而我无法绑定接口构建器中dataSource
NSTableView
representedObject
NSViewController
属性{{1}}。如何使用表示对象属性?有没有正确使用的例子?
答案 0 :(得分:4)
representedObject
属性应设置为位于nib外部的对象,例如文档,另一个模型控制器或模型对象。 nib中的内容应该从VC或VC representedObject
获取数据。
答案 1 :(得分:0)
我知道这是一个古老的主题,但我想我会加入它,因为我对representObject进行了大量的研究。希望这有帮助!
representedObject
是对视图应代表的某些AnyObject
(NSObject
)的引用。
它不是对象的副本,而是对它的引用(在Swift和Objective-C中)
理想情况下,如果相关视图是一个页面输出"联系应用程序"。此页面represents a contact
然后,由实例化它的对象将设置为fooContact
。 fooContact
是对相关联系人实例的引用。
它不必由实例化类设置,但我个人觉得它更清晰。
我通常避免尝试覆盖所表示的对象的默认getter / setter,并通过类中的另一个var引用它,即
weak var document: Document{
if let docRef = self.representedObject as Document {
return docRef
}
return nil
}
保持弱参考将避免参考周期。