首页 > 解决方案 > NSOutlineView numberOfRows 在 reloadData 后没有增加

问题描述

我想计算我刚刚添加到NSOutlineView. 为此,我将它添加到我的数据源中,然后调用reloadData. 但是,出于某种原因,除了第一行之外NSOutlineView,我无法检查单元格之后的任何内容。reloadData代码如下所示:

[m_dataSource add:...];  // first add item to my data source
[m_outlineView reloadData];  

int nRows = (int) [m_outlineView numberOfRows];
NSCell *cell = [m_outlineView preparedCellAtColumn:0 row:nRows-1];
NSSize size = [cell cellSize];

出于某种原因,nRows无论我添加多少行,这里总是 1。因此,我只能查询第一行中第一个单元格的大小。

我看到的行为可能与第一行是可扩展行而所有其他行都是第一行的子行有关。但是,我已经检查过了

- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item;

正确返回YES该项目。一切也正确地出现在NSOutlineView. numberOfRows即使我reloadData在它之前打电话,它似乎也没有得到更新。

有什么想法吗?

标签: objective-cmacoscocoansoutlineview

解决方案


推荐阅读