2

我将另一个添加Object到我NSOutlineViewNSOutlineViewDataSource并调用[myOutlineView noteNumberOfRowsChanged]。如果我正确阅读了文档,这应该让 OutlineView 意识到我添加了一行并正确重绘了自己。但相反,什么也没有发生。

如果我称它为[myOutlineView reloadData]有效,但根据文档reloadData,开销比noteNumberOfRowsChanged(因为它重新加载所有数据...... duh)要高得多

我没有使用绑定,我NSOutlineViewDataSource自己提供。

有人知道我在做什么错吗?

4

1 回答 1

1

reloadData: 文档中:

如果您只想更新滚动条,请使用 noteNumberOfRowsChanged; 如果一组行的高度发生变化,请使用 noteHeightOfRowsWithIndexesChanged:。

对我来说,这听起来noteHeightOfRowsWithIndexesChanged:只能确保新添加的对象在视图中可见。

文档的讨论部分reloadData:还提到了一种更新单行的方法。但是,如果您添加新对象,这似乎reloadData:是唯一的选择。

于 2011-05-06T18:01:39.357 回答