OSX NSTableView insertRowAtIndexes

OSX NSTableView insertRowAtIndexes

我已经检查了 Using NSTableView insertRowsAtIndexes 解决方案,但它没有解决我的问题。
我想在特定索引的 nstableview 中插入行(动态添加) index Set是有效的,仍然导致程序崩溃

NSIndexSet *indexSet=[NSIndexSet indexSetWithIndex:i];
[myTableView insertRowsAtIndexes:indexSet withAnimation:NSTableViewAnimationEffectFade];

1)我的代码有什么问题吗?
2)有没有其他方法可以在特定索引处添加行(动态添加)?

代码是正确的,但首先你必须在数据源数组中插入模型对象以保持模型和视图同步。

我弄错了.....问题在其他代码中所以这段代码没问题
但我想补充几点 关于 insertRowsAtIndexes: 方法
希望对其他人有帮助
1) 不要调用 reloadData(),因为您要添加特定数量的行,因此调用 reloadData() 将重新加载所有数据,这会导致崩溃

2) 允许在同一个 beginUpdatesendUpdates 块中多次调用此方法,并且增量处理更改

3)最重要的是indexSet必须在范围内 如果您输入有效的索引集,则 table 视图中的 numberOfRows 会自动增加索引数。

4)可以根据需要select动画

示例代码:

[yourTableView beginUpdates];  
NSIndexSet* theIndexSet = [NSIndexSet indexSetWithIndex:[self.yourTableContents count]-1];
[yourTableView insertRowsAtIndexes:theIndexSet withAnimation:NSTableViewAnimationEffectFade];
[yourTableView endUpdates];