我正在制作一个自定义视图,希望与绑定/核心数据兼容,并表示一个数据集合(类似于NSTableView)
在用户更改后,我的视图是否可以引用集合中特定的元素子集(而不是当前选择)?
一点背景信息:
该视图将在2D空间中显示许多用户可移动的框。每个框对应于模型中的一条记录。可以一次移动几个,并且我不能依赖于每个框的增量值是相同的(所以不会向每个选定的对象添加增量)。
我猜我正在寻找类似于由NSArrayController分配给内容数组的每个元素的id,以便视图可以将该id与每个框相关联。我的第一个想法是在内容数组中使用索引,但这可能会被撤销/重做搞砸。我可以子类化NSArrayController并让它为每个模型项目自动生成一个id,但是cocoa已经做了这样的事情吗?感觉我可能遗漏了什么。
发布于 2010-08-20 06:34:05
为什么不直接引用对象本身呢?您可以将它们保存在一个集合或数组中,视情况而定。
如果你真的需要某种类型的标识符:为什么?你打算用它做什么?
发布于 2010-08-20 20:22:46
我应该提到,我最初尝试将内容数组的每个元素存储在视图中(如Peter所建议的),但将它们作为键存储在字典中。
视图中的对象与字典中的键不匹配,因此我认为这意味着NSArrayController更改了它用来代表模型对象的代理对象。
然而,事实证明NSDictionary复制了它的键,所以它似乎不适合于您想要将一个对象的特定实例与另一个对象相关联的情况。
NSMapTable是它更灵活的表亲,可以配置为不复制它的密钥。
https://stackoverflow.com/questions/3527434
复制相似问题