gpt4 book ai didi

cocoa - 使用 NSTableView insertRowsAtIndexes

转载 作者:行者123 更新时间:2023-12-03 17:31:30 25 4
gpt4 key购买 nike

我正在尝试使用动态添加行到我的 NSTableViewNSTableView::insertRowsAtIndexes:withAnimation

为此,我更新保存数据源的 NSArray 的内容,然后

[myTableView beginUpdates];
NSRange theRange = NSMakeRange(0, [self.myTableContents count]-1);
NSIndexSet* theIndexSet = [NSIndexSet indexSetWithIndexesInRange:theRange];
[myTableView insertRowsAtIndexes:theIndexSet withAnimation:NSTableViewAnimationEffectFade];
[myTableView endUpdates];

我的问题是,当表格重绘并计算每行的高度时,出现边界错误。我认为这个问题在文档中提到:“ TableView 中的 numberOfRows 会根据索引的数量自动增加。”

如果 myTableContents 中有 10 个项目,并且我为所有 10 个项目调用 insertRowsAtIndexes,则为第 0-19 行调用 heightOfRow(myTableContents 中的 10 行,加上由于调用 insertRowsAtIndexes 而添加的另外 10 行)。

那么,其他表如何处理这个问题呢?

最佳答案

theRange 应该只包含要插入的新行的范围。即对于 insertRowsAtIndexes: 您应该传递要插入的新行的索引,而不是所有行。

您的数据源也应在那时更新,并且 numberOfRows 应反射(reflect)这一点。

关于cocoa - 使用 NSTableView insertRowsAtIndexes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21892829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com