NSTableView:重命名一行导致一次重命名两行

时间:2016-06-24 10:48:43

标签: sorting cocoa core-data binding nstableview

我的设置:我有一个基于单元格的NSTableview。这些列绑定到NSArrayController的值(Interface Builder中的键值绑定)。 NSArrayController包含一组NSManagedObjects(CoreData实体(Device))。 tableview的sortDescriptor绑定了一个数组控制器。

我的问题:当我按名称对表格视图进行排序然后重命名行时,NSArrayController会重新排列其内容,而nstableview会更改行的顺序。我要那个。但是,它不是仅重命名一行,而是重命名两行。只有当行的顺序因其排序描述符而改变时才会发生这种情况。

即。表格视图如下左侧行。如果我将f重命名为b,则会更改为右侧的行

a         ->           a
c         ->           b
d         ->           b
e         ->           c
f         ->           d

我在name属性的setter处设置了一个断点,以查看第二次设置名称的内容。但是,通过查看堆栈,我并没有变得更聪明。

这是第一次调用setter: enter image description here

这是第二次: enter image description here

我已经构建了一个示例应用,但是我无法重现此行为。我必须在某处做错事,但我找不到什么。一整天都在尝试。有没有人有想法,这里出了什么问题?谢谢:))

1 个答案:

答案 0 :(得分:0)

我找到了问题的根源:

我不确定究竟是什么原因,但有两个戒指我做错了。

  1. 我将NSTableView的内容属性绑定到NSArrayController的arrangeObjects。我删除了。就在那时我发现其他东西一定是错的,因为现在NSTableView中根本看不到任何数据:
  2. 当NSTableView出现时,NSArrayController还没有准备好 正在设置绑定。因此列已被绑定 零。我现在正在以编程方式将列值绑定到NSArrayController的arrangeObjects,一旦arrangeObjects准备就绪。