如何在NSTreeController填充的NSOutlineView中锁定父行

时间:2014-04-08 05:56:07

标签: objective-c cocoa nsoutlineview

我有NSOutlineView通过NSTreeController从数组中填充。我想这样做,以便有孩子的行不可编辑,隐藏这些行中的弹出窗口。您可以在附加的屏幕截图中看到我的outlineview - 它本质上是一个设置树。

我该如何解决这个问题,还是需要通过委托实现数据源而不是使用NSTreeController来实现呢?

Here's a screenshot

1 个答案:

答案 0 :(得分:0)

你有没有看过delegate methods

特别有趣的是

– outlineView:shouldEditTableColumn:item:

允许确定是否可以编辑项目。如果项目是父项,请检查子项,return NO;

隐藏弹出按钮取决于您设置NSOutlineView的方式。在基于单元格的大纲视图中使用例如

– outlineView:willDisplayCell:forTableColumn:item:

隐藏父行的单元格内容。在基于视图的大纲视图中,另一种方法可用于自定义某些列:

– outlineView:viewForTableColumn:item:

这应该易于使用以实现您的结果。