1

我正在制作一个自定义视图,我希望它与绑定/核心数据兼容并表示数据集合(a la NSTableView)

在用户更改后,我的视图是否可以引用集合中元素的特定子集(当前选择除外)?

一点上下文:
该视图将在 2D 空间中显示许多用户可移动的框。每个框对应于模型中的一条记录。几个可以一次移动,我不能依赖每个框的 delta 值相同(所以不要向每个选定的对象添加 delta)。

我想我正在寻找类似于 NSArrayController 为内容数组的每个元素分配的 id,以便视图可以将该 id 与每个框相关联。我的第一个想法是在内容数组中使用索引,但这可能会被撤消/重做弄乱。我可以继承 NSArrayController 并让它为每个模型项自动生成一个 id,但是 cocoa 已经做了这样的事情了吗?感觉我可能错过了什么。

4

2 回答 2

1

我应该提到我最初尝试将每个内容数组的元素存储在视图中(如彼得建议的那样),但将它们作为键存储在字典中。

视图中的对象与字典中的键不匹配,所以我认为这意味着 NSArrayController 更改了它用来代表模型对象的代理对象。

然而,事实证明 NSDictionary 复制了它的键,因此对于您想要将一个对象的特定实例与另一个关联的情况似乎没有好处。

NSMapTable 是它更灵活的表亲,可以配置为不复制它的键。

于 2010-08-20T20:22:45.940 回答
0

为什么不只引用对象本身呢?您可以将它们保存在一个集合或数组中,无论哪个合适。

如果你真的需要某种标识符:有什么用?你打算用它做什么?

于 2010-08-20T06:34:04.587 回答