【问题标题】:TableView not synced表视图未同步
【发布时间】:2020-12-21 20:01:34
【问题描述】:

在我的

func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView?

方法,row 有时大于我的数组的大小。这非常很奇怪,因为我也有

func numberOfRows(in tableView: NSTableView) -> Int 

实现返回我的数组计数。

我的印象是,每当TableView 来电时

func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView?

,它也会调用numberOfRows,所以row永远不会大于numberOfRows

【问题讨论】:

  • 不熟悉NSTableView,但我会这么认为。问题可能出在其他地方
  • 最好是展示真实的代码,而不是描述你认为的代码。

标签: swift macos cocoa


【解决方案1】:

NSTableView 调用tableView(_:viewFor:row:) 而不是numberOfRows(in:) 当它需要显示单元格视图时,这在滚动时可能很常见。当行数发生变化时调用reloadData()或插入/删除行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    • 2015-08-27
    • 1970-01-01
    相关资源
    最近更新 更多