首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在使用NSTreeController时查找NSOutlineView行索引

如何在使用NSTreeController时查找NSOutlineView行索引
EN

Stack Overflow用户
提问于 2010-05-03 14:02:43
回答 1查看 1.7K关注 0票数 0

我正在使用NSTreeController来管理NSOutlineView的节点。当用户添加新项时,我创建一个新对象并插入它:

代码语言:javascript
代码运行次数:0
运行
复制
EntityViewEntityNode *newNode = [EntityViewEntityNode nodeWithName:@"New entity" entity:newObject];

// Insert at end of group
//
NSIndexPath *insertAt = [pathOfGroupNode indexPathByAddingIndex:[selected.children count]];
[entityCollectionTreeController insertObject:newNode atArrangedObjectIndexPath:insertAt];

现在,我想打开表列进行编辑,这样用户就可以命名新项目了。这似乎合乎逻辑:

代码语言:javascript
代码运行次数:0
运行
复制
NSInteger row = [entityCollectionOutlineView rowForItem:newNode];
[entityCollectionOutlineView editColumn:0 row:row withEvent:nil select:YES];

但是,row始终为-1,表示找不到该对象。查看一下就会发现,树控制器实际上并没有将我的对象直接放入树中,而是将它们包装在自己的节点对象中。

有没有人知道我将如何获得相对于大纲视图的行索引,这样我就可以做到这一点(希望不用枚举大纲视图中的所有内容并计算回节点的映射?)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-03 14:55:46

当您插入一个新节点时,它会自动在outline视图中被选中。这样您就可以通过使用...

代码语言:javascript
代码运行次数:0
运行
复制
NSInteger selectedRow = [entityCollectionOutlineView selectedRow];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2756360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档