NSTableView多个选择

时间:2012-06-13 03:43:53

标签: iphone ios5 selection nstableview

我有一个NSTableView启用了多个选项

如果我选择项目并来回滚动列表,则会记住并显示和选择(蓝色背景)。 使用didDeselectRowAtIndexPathdidSelectRowAtIndexPath,我可以保留自己的所选项目数组。

该部分运作良好。

然而,如果我然后使用sectionForSectionIndexTitle并跳转到一封信,即使indexPathForSelectedRows似乎已被重置且现在为空,也会忘记选择。

我自己的数组记得选中了一个项目,我可以在cellForRowAtIndexPath中设置cell.selected,但是我移动列表的那一刻又被忘记了

任何想法都是一个错误,或者在跳到字母时如何保留选择列表

提前致谢

3 个答案:

答案 0 :(得分:1)

请记住,UITableViewCells仅用于显示您的数据,绝不会与您的“模型”保持一对一的关系,因为它们排队并在必要时重复使用(即您可能会展示数千个项目)一个tableview但只分配了少数几个UITableViewCell实例。

因此,您需要跟踪可变数组中所选/取消选择的项目,并确保在tableView:cellForRowAtIndexPath:方法中检查该项目是否存在,然后更新单元格属性以表示您的数据。 / p>

答案 1 :(得分:0)

通过使用NSMutableArray个选定的行值,可以自己跟踪表中选定的行。然后,在数组中的最后一个对象上调用-selectRowAtIndexPath:animated来恢复选择。

至于错误:当表跳转到选定的字母时可能发生的事情是一个迷路的-reloadData会忘记所选择的行。

答案 2 :(得分:0)

我认为它正在发生,因为你的细胞被重复使用。不要重复使用细胞(您没有有效地使用细胞)。否则,

您可以将选择单独存储在一个数组中,稍后将其用于您的目的。!