Cocoa NSOutlineView从代码中展开/折叠动画
我想知道一个如何通过代码为NSOutlineView树节点的展开/折叠设置动画Cocoa NSOutlineView从代码中展开/折叠动画,cocoa,core-animation,nsoutlineview,Cocoa,Core Animation,Nsoutlineview,我想知道一个如何通过代码为NSOutlineView树节点的展开/折叠设置动画 // this works ok but doesn't animate NSTreeNode *node = [self.outlineView itemAtRow:self.outlineView.clickedRow]; if([self.outlineView isItemExpanded:node]) { [self.outlineView.animator collapseItem:nod
// this works ok but doesn't animate
NSTreeNode *node = [self.outlineView itemAtRow:self.outlineView.clickedRow];
if([self.outlineView isItemExpanded:node])
{
[self.outlineView.animator collapseItem:node];
}else{
[self.outlineView.animator expandItem:node];
}
如果通过默认绘制的箭头展开节点,则轮廓视图自然会设置动画所以有一种方法…问题可能是传递给
collapseItem:
的节点。您需要传递树控制器用于表示节点的对象,而不是数据模型中的实际节点。如果您使用的是NSTreeController,则需要遍历从-[NSTreeController arrangedObjects]
返回的结构,以找到表示数据模型对象的节点。我的原始代码正常,这在10.7下不可用
原文来自:
纳维
以下方法现在支持通过-animator代理设置动画:-expandItem:,-expandItem:expandChildren:,-collapseItem:,和-collapseItem:collapsechildens:。例如,要为特定项的展开设置动画:[[outlineView animator]expandItem:item] 您好,我已经成功地通过代码打开/折叠了。我有一个问题是如何设置它的动画。您可以链接到发布说明中的位置吗?完成。所述文本位于NSOutlineView部分如果您使用Swift,则在您尝试键入outlineView.animator().ex
时,不会在Xcode中自动完成。也许是个虫子。但是,如果您手动键入它,它实际上是有效的outlineView.animator().expandItem(item)
。