尝试对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项目已更新。