NSTableView:重命名一行会导致同时重命名两行
NSTableView: Renaming one row results in renaming two rows at once
我的设置: 我有一个基于单元格的 NSTableview。这些列绑定到 NSArrayController 的值(Interface Builder 中的键值绑定)。 NSArrayController 包含一组 NSManagedObjects(CoreData 实体(设备))。 table视图的 sortDescriptor 绑定到数组控制器之一。
我的问题: 当我按名称对 table 视图排序然后重命名一行时,NSArrayController 重新排列它的内容,而 nstable 视图更改行的顺序。我要那个。但是,它不只是重命名一行,而是重命名两行。只有当行的顺序由于其排序描述符而必须更改时才会发生这种情况。
即table 视图看起来像下面的左行。如果我将 f 重命名为 b,它会更改为右侧的行
a -> a
c -> b
d -> b
e -> c
f -> d
我在名字属性的setter处设置了一个断点,看看是什么设置了第二次这个名字。然而,我并没有通过查看堆栈变得更聪明。
这是第一次调用 setter:
这是第二次:
我已经构建了一个示例应用程序,但是我无法重现此行为。我一定是在某个地方做错了什么,但我找不到什么。一整天都在尝试。有谁知道,这里出了什么问题?谢谢:)
我找到了问题的根源:
不知道具体原因是什么,但是有两个戒指我做错了。
- 我绑定了 NSTableView 的内容 属性 NSArrayController 的 arrangedObjects。我删除了那个。就在那时我注意到肯定有其他问题,因为现在 NSTableView 中根本看不到任何数据:
- 当 NSTableView 准备好时,NSArrayController 还没有准备好
正在使用绑定进行设置。所以列已经绑定到
零。我现在在 arrangedObjects 准备就绪后立即以编程方式将列值绑定到 NSArrayController 的 arrangedObjects。
我的设置: 我有一个基于单元格的 NSTableview。这些列绑定到 NSArrayController 的值(Interface Builder 中的键值绑定)。 NSArrayController 包含一组 NSManagedObjects(CoreData 实体(设备))。 table视图的 sortDescriptor 绑定到数组控制器之一。
我的问题: 当我按名称对 table 视图排序然后重命名一行时,NSArrayController 重新排列它的内容,而 nstable 视图更改行的顺序。我要那个。但是,它不只是重命名一行,而是重命名两行。只有当行的顺序由于其排序描述符而必须更改时才会发生这种情况。
即table 视图看起来像下面的左行。如果我将 f 重命名为 b,它会更改为右侧的行
a -> a
c -> b
d -> b
e -> c
f -> d
我在名字属性的setter处设置了一个断点,看看是什么设置了第二次这个名字。然而,我并没有通过查看堆栈变得更聪明。
这是第一次调用 setter:
这是第二次:
我已经构建了一个示例应用程序,但是我无法重现此行为。我一定是在某个地方做错了什么,但我找不到什么。一整天都在尝试。有谁知道,这里出了什么问题?谢谢:)
我找到了问题的根源:
不知道具体原因是什么,但是有两个戒指我做错了。
- 我绑定了 NSTableView 的内容 属性 NSArrayController 的 arrangedObjects。我删除了那个。就在那时我注意到肯定有其他问题,因为现在 NSTableView 中根本看不到任何数据:
- 当 NSTableView 准备好时,NSArrayController 还没有准备好 正在使用绑定进行设置。所以列已经绑定到 零。我现在在 arrangedObjects 准备就绪后立即以编程方式将列值绑定到 NSArrayController 的 arrangedObjects。