1

我无法弄清楚如何为在 NSOutlineView 中添加新行设置动画。我在每一行都有一个 addButton,当用户单击 addButton 时,我希望在用户刚刚单击的记录下方出现一个新行。

当用户单击时,我的代码正在创建一个新的核心数据记录,我通常只需调用 [NSOutlineView reloadData] 即可完成 - 工作正常,只是看起来不那么优雅。

所以在某处我找到了在outlineView中插入一行的方法

[_outlineView insertItemsAtIndexes:ix inParent:parent withAnimation:NSTableViewAnimationSlideDown];

一些问题:

  1. 我在 SDK 中找不到任何解释这一点的文档,所以如果有人有链接,请发布它。

  2. 似乎无论如何都无法使用此方法在最后一行下方插入一行。是否有另一种方法可以在带有动画的 outlineView 部分的末尾添加一行?

  3. a) 向模型中添加一条记录,然后 b) 正确地为该记录的插入或添加设置动画所需的调用顺序是什么。目前动画使用现有的行标签插入一行,我希望它使用已插入模型名称的对象。

4

1 回答 1

0

下面的代码片段可能会有所帮助:

outlineView.beginUpdates()
section.children.append(child)
let index = section.children.count - 1
let indexSet = NSIndexSet(index: index)
print("Index of inserted item: \(index) - IndexSet: \(indexSet)")
outlineView.insertItemsAtIndexes(indexSet, inParent: section, withAnimation: .SlideDown)
outlineView.endUpdates()
outlineView.expandItem(section)
于 2015-07-13T12:22:06.367 回答