【问题标题】:(view-based) NSTableView's reloadDataForRowIndexes:columnIndexes: not removing row view?(基于视图)NSTableView 的 reloadDataForRowIndexes:columnIndexes: 不删除行视图?
【发布时间】:2011-09-30 21:23:28
【问题描述】:

在 10.7 中尝试使用 reloadDataForRowIndexes:columnIndexes: 作为我基于 NSTableView 的视图。虽然有重绘问题。如果我编辑对象并调用 reloadDataForRowIndexes:columnIndexes: 然后删除对象,我最终会得到一个静态行视图。

docs warn

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

不知道我应该如何告诉表视图也删除行视图。如果我使用 reloadData 一切正常,但显然它是一个更重的调用方法并导致选择丢失。

有什么想法吗?

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

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

【问题讨论】:

    标签: macos cocoa nstableview


    【解决方案1】:

    我想我修复了这个错误。事实证明,在尝试在 tableview 上尝试任何类型的 reloadDataForRowIndexes:columnIndexes: 之前,您必须小心关闭 [self.tableView endUpdates]

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

    GitHub 项目已更新。

    【讨论】:

      猜你喜欢
      • 2018-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-10
      • 1970-01-01
      • 2013-07-25
      相关资源
      最近更新 更多