在我正在处理的一个应用中,我需要让用户编辑日期列表。我在数组中有这些NSDate
个对象,并将其绑定到NSArrayController
。我使用密钥路径NSTableColumn
将arrangedObjects.self
(表视图中唯一的列)绑定到该数组控制器。这很好 - 我按照我想要的方式显示表格中显示的所有日期,我可以添加和删除日期。
问题是我无法编辑表格中的日期。如果我尝试,我会收到异常消息,NSDate
不符合键self
的键值编码,当然这是正确的,没有setSelf:
方法。
我有两个想法可以解决这个问题:
NSDate
,而是首先将其放在NSMutableDictionary
或其他对象中。我真的不喜欢这两种解决方案。我不喜欢第一个因为我必须把东西放在我的模型中才能使GUI正确。第二个不是非常用户友好。
那么有没有人知道是否有第三种甚至更好的方法来解决这个问题?
现在我使用表视图的数据源来处理这个而不是使用绑定。但是我还是想看看是否有更好的解决方案使用绑定来解决这个问题,因为每次这个(或类似的问题)出现时我都不想写一个数据源。它不仅发生在NSDate
,还发生在cocoa提供的所有其他值类型类中,即使它们是可变的(如NSMutableString
)。
答案 0 :(得分:1)
<强> 更新 强>
似乎,由于NSDate没有可以设置的属性(与NSNumber一样),为了“编辑日期”,您必须用新创建的“替换旧”。日期必须是某个其他对象的属性或容器的一部分,如NSDictionary为NSDateFormatter和Cocoa Bindings做正确的事。
为早期的噪音道歉 - 当我尝试以前从未尝试过的东西时,我似乎总是学到新东西。 : - )