如何将NSTableView绑定到自定义集合类?

时间:2013-12-12 11:19:02

标签: objective-c xcode cocoa interface-builder

我知道如何通过NSTableViewNSArray绑定到NSArrayController

但是如何将NSTableView绑定到MyCustomCollection呢?绑定是什么样的?我仍然可以使用NSArrayController并且只是符合MyCustomCollection中的协议吗?或者我应该使用不同的控制器对象? MyCustomCollection需要遵守什么?

1 个答案:

答案 0 :(得分:1)

如果不了解更多有关您的收藏类的信息,这很难完全或具体回答。几乎可以肯定,创建自定义集合类是错误的。你应该明确地说明你觉得这是必要的原因和你的实施。准备好考虑你的理由不足以证明将自定义集合干扰到NSArrayController或者甚至不可能完全按照你想要的那样(至少你试图这样做的方式)。

另请注意,Cocoa集合类是class cluster的(我认为所有)成员。这使得“正确行事”成为一项复杂得多的挑战,并且如果你不得不问如何(“如果你不得不问,你还没有准备好尝试它”自负,那么将现有的Cocoa集合类子类化为坏主意™,尽管如此对齐)。

我相信只要你的班级响应同一个选择器(至少)NSArray(如果你的班级是可变的话,如果不是NSMutableArray),包括Key Value Coding collection accessor methods,它应该可以正常工作。由于您的表(或者更可能是其列)绑定到数组控制器,因此该部分应该相同。由于NSArrayController-content继承-setContent: / NSObjectController并且这些方法采用id参数,我相信它可能会使用我引用的KVC访问器方法来获取该系列的成员。

但我可能错了......: - )