【问题标题】:Updating Core Data from custom NSCell从自定义 NSCell 更新核心数据
【发布时间】:2011-03-17 14:38:14
【问题描述】:

我有一个自定义的NSCell(实际上是NSTextFieldCell 的子类),它既可用于独立编辑器,也可用于NSTableColumn(通过NSArrayController 绑定到Core Data)。当用户更改值时,我调用-[NSCell setObjectValue:] 来更新值(它是NSNumber)。这在独立编辑器中有效,因为完成后我手动更新其上的绑定。

[self setObjectValue:[NSNumber numberWithInt:newValue]];

当单元格位于NSTableView 中时,缺少该步骤(更新绑定字段) - 更新后的值会在用户编辑(使用鼠标跟踪)时显示,但一旦结束,值就会立即恢复为持久化的值。

NSTableColumn 绑定到 -[NSArrayController arrangedObjects] 的键。我是否缺少某种对“commitEditing”或“updateBinding”的调用?我在 NSCellNSTableView 的文档中找不到任何有用的功能。

【问题讨论】:

    标签: macos core-data cocoa-bindings nsarraycontroller nscell


    【解决方案1】:

    为了解决这个问题,我在 NSArrayController 子类中实现了 -tableView:setObjectValue:forTableColumn:row:。我从 Row 参数中获取了我的 NSManagedObject 子类的实例,然后从 ObjectValue 参数中手动分配新模型。当文本单元格自动执行此操作时,我仍然不知道为什么这是必要的,但它确实有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-30
      • 2013-04-19
      • 1970-01-01
      • 1970-01-01
      • 2016-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多