我正在调用insertRowsAtIndexes
和removeRowsAtIndexes
来插入或删除我的NSTableView
,两者都带有动画(SlideDown
用于插入,SlideUp
用于删除),但我怎么能控制,以便我只能在前一个动画结束后调用插入或删除行(做一个新动作)?
因为我收到错误:
[NSMutableArray insertObjects:atIndexes:]: count of array (25) differs from count of index set (4)
如果我快速添加和删除。或者当我快速单击插入时。有什么想法吗?
感谢。
答案 0 :(得分:1)
请参阅NSAnimationDelegate - (void)animationDidEnd :( NSAnimation *)动画
另外,尝试调用CALayer - (void)在任何更改之前删除AllAnimations。
CALayer的另一个问题是进行大规模更改会导致所有内存被吞噬。示例:导入海量文件,剪切/粘贴大量的表条目。 出于这个原因,我在这个区块中附上了大量的变化:
[CATransaction begin];
[CATransaction setValue:(id)kCFBooleanTrue
forKey:kCATransactionDisableActions];
// ... perform massive change
[CATransaction commit];