尝试对10.7中基于视图的reloadDataForRowIndexes:columnIndexes:使用NSTableView。虽然有重画问题。如果我编辑该对象并调用reloadDataForRowIndexes:columnIndexes:并随后删除该对象,则最终得到的是静态行视图。

docs warn


  对于基于视图的表视图,reloadDataForRowIndexes:columnIndexes:
  将删除表格行中的视图单元,但不删除NSTableRowView
  实例。


不知道如何告诉表格视图也要删除行视图。如果我使用reloadData,那么所有方法都可以正常工作,但是显然,它要调用的方法要重得多,并且会导致选择丢失。

有什么想法吗?

更新:添加了一个演示应用程序来演示该错误。可以在GitHub上找到。它有解决方法的代码,但是我仍然想找到答案。

https://github.com/zorn/NSTableView-ViewBased-ReloadRowBug

最佳答案

我想我已修复此错误。事实证明,在表视图上尝试任何类型的[self.tableView endUpdates]之前,必须谨慎使用reloadDataForRowIndexes:columnIndexes:关闭。

我将附上我的雷达,要求在尝试执行此操作时记录正式控制台的工作。

GitHub项目已更新。

09-07 13:22