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) 允许在同一个 beginUpdates 和 endUpdates 块中多次调用此方法,并且增量处理更改
3)最重要的是indexSet必须在范围内
如果您输入有效的索引集,则 table 视图中的 numberOfRows 会自动增加索引数。
4)可以根据需要select动画
示例代码:
[yourTableView beginUpdates];
NSIndexSet* theIndexSet = [NSIndexSet indexSetWithIndex:[self.yourTableContents count]-1];
[yourTableView insertRowsAtIndexes:theIndexSet withAnimation:NSTableViewAnimationEffectFade];
[yourTableView endUpdates];
我已经检查了 Using NSTableView insertRowsAtIndexes 解决方案,但它没有解决我的问题。
我想在特定索引的 nstableview 中插入行(动态添加)
index Set是有效的,仍然导致程序崩溃
NSIndexSet *indexSet=[NSIndexSet indexSetWithIndex:i];
[myTableView insertRowsAtIndexes:indexSet withAnimation:NSTableViewAnimationEffectFade];
1)我的代码有什么问题吗?
2)有没有其他方法可以在特定索引处添加行(动态添加)?
代码是正确的,但首先你必须在数据源数组中插入模型对象以保持模型和视图同步。
我弄错了.....问题在其他代码中所以这段代码没问题
但我想补充几点 关于 insertRowsAtIndexes: 方法
希望对其他人有帮助
1) 不要调用 reloadData(),因为您要添加特定数量的行,因此调用 reloadData() 将重新加载所有数据,这会导致崩溃
2) 允许在同一个 beginUpdates 和 endUpdates 块中多次调用此方法,并且增量处理更改
3)最重要的是indexSet必须在范围内 如果您输入有效的索引集,则 table 视图中的 numberOfRows 会自动增加索引数。
4)可以根据需要select动画
示例代码:
[yourTableView beginUpdates];
NSIndexSet* theIndexSet = [NSIndexSet indexSetWithIndex:[self.yourTableContents count]-1];
[yourTableView insertRowsAtIndexes:theIndexSet withAnimation:NSTableViewAnimationEffectFade];
[yourTableView endUpdates];