代码之家  ›  专栏  ›  技术社区  ›  Trygve

NSTableView检测滚动关闭的行

  •  4
  • Trygve  · 技术社区  · 6 年前

    我有一个基于视图的NSTableView,每一行都必须生成一些需要时间的图像。这些操作在后台NSoperationQueue上完成,并在请求映像时启动(通过绑定)。

    当一行从屏幕上滚下时,如果NSOperation仍然挂起,我希望能够取消它,但我需要检测一行何时不再可见。我应该在CustomTableRowView、CustomTableCellView或其他内容上查找delloc吗?

    我想我需要tableView的反面:willDisplayCell:forTableColumn:row:

    某种表格视图:willHideCell:forTableColumn:row:

    苹果的TableView游乐场有一条评论:

    //如果我们想稍后支持取消已滚动到屏幕外且不再需要的操作,则必须使用NSBlockOperation跟踪该块。这将留给用户作为练习。

    我可以取消该操作,但我不确定如何检测行何时被滚动掉。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Trygve    3 年前

    我相信这已经解决了

    tableView:didRemoveRowView:forRow:

    虽然我不确定是在该行滚动关闭后立即调用还是稍后调用。

    推荐文章