4

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

NSOutlineView有一套NSTableViewSelectionHighlightStyleSourceList。在某些情况下,第二级不缩进,显示在与根节点相同的级别。

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

如果满足以下条件,则第二级不缩进:

  • 在 Mac OS X 10.7 Lion 上(总是相同的行为)
  • 或仅在我实施 - (BOOL)outlineView:(NSOutlineView *)outlineView isGroupItem:(id)item返回 NO时才在 10.8 上

我怎样才能让每个级别都像人们期望的那样缩进层次布局并保持源列表样式?

意外缩进:

意外的缩进

4

1 回答 1

1

缩进似乎只从第 3 层开始。因此,为了解决这个问题,您需要添加一个包含所有当前根节点的节点。该根节点的样式将与默认的 OSX 组节点非常相似:

在此处输入图像描述

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

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

于 2013-11-29T12:22:35.993 回答