NSOutlineView,源列表突出显示不缩进第二级

时间:2013-06-19 12:27:53

标签: cocoa nsoutlineview

我遇到了一个非常奇怪的问题:

我将NSOutlineView设置为NSTableViewSelectionHighlightStyleSourceList。在某些情况下,第二级不缩进并显示在与根节点相同的级别。

我相信这是因为第一级预计会是一个“组”级别。但是,在10.8上,默认情况下所有内容都正确缩进。我在10.7测试时才发现这一点。看起来这种行为在不同版本中都有所改变。

如果符合以下条件,则第二级不缩进:

  • 在Mac OS X 10.7 Lion上(总是相同的行为)
  • 如果我执行- (BOOL)outlineView:(NSOutlineView *)outlineView isGroupItem:(id)item以返回NO
  • ,则依次为10.8

如何让每个级别缩进,就像人们对层级布局所期望的那样并保持源列表样式?

意外缩进:

unexpected indentation

1 个答案:

答案 0 :(得分:1)

似乎缩进仅在第3级开始。因此,要解决此问题,您需要添加一个包装所有当前根节点的节点。该根节点的样式与默认的OSX组节点类似:

enter image description here

不理想,取决于您的UI,但比使用常规NSOutlineView样式更好。

如果您不想显示根标头,可以使用outlineView:heightOfRowByItem:将高度设置为0