小编use*_*855的帖子

是-tableView:objectValueForTableColumn:row:必须?

NSTableViewDataSource中,概述说这tableView:objectValueForTableColumn:row:是"必需的".

紧挨着这一点,它表示tableView:setObjectValue:forTableColumn:row:"仅基于单元格的表"是必需的,这表明编写此文档的人知道基于视图的表,这tableView:objectValueForTableColumn:row:是基于视图的表所必需的.

方法tableView:objectValueForTableColumn:row:本身的文档说:

注意:除非您的应用程序使用Cocoa绑定向表视图提供数据,否则此方法是必需的.

但与其他方法不同的是,没有提到基于视图的表是不必要的.

然而,如果需要,我无法弄清楚它的用途.如果是这样,那个和-tableView:viewForTableColumn:row:它之间的关系是什么,它还需要一个表,一列和一行,并返回要在那里显示的东西?

在一些简短的测试中,看起来NSTableView将-tableView:objectValueForTableColumn:row:在定义时使用,如果没有,它将使用-tableView:viewForTableColumn:row:.如果它们都被定义,它会同时调用它们,但只使用前者进行显示.

如果我正在编写基于视图的NSTableView,是否有任何理由来实现此方法?

cocoa objective-c nstableview

7
推荐指数
1
解决办法
1002
查看次数

什么是NSTableView -noteNumberOfRowsChanged的NSView版本?

NSTableView的-noteNumberOfRowsChanged文档说:

注意:使用基于NSView的表视图时,应避免使用此方法。该表将在数据源中查询新的行数,并根据需要使用动画在表的末尾正确插入(或删除)行。

不幸的是,它没有说我应该使用什么!

我已将我的应用程序从基于NSCell的表更改为基于NSView的表,以便使用(略微)更复杂的自定义单元格(据说这些单元格更易于设计/绘制为NSViews),但是我看到了显着的性能问题,即使在小桌子上也是如此。

我已经在调用-reloadDataForRowIndexes:columnIndexes:,从经验上讲,这不足以让它重新查询-numberOfRowsInTableView(并且它给出了范围异常,试图绘制比先前报告的行数更大的行)。

我应该调用一种方法吗?还是基于NSView的表不仅仅用于性能关键型表,这些表经常会添加行?

macos cocoa nstableview

6
推荐指数
1
解决办法
243
查看次数

标签 统计

cocoa ×2

nstableview ×2

macos ×1

objective-c ×1