【问题标题】:NSOutlineView with source list highlighting not indenting second levelNSOutlineView 与源列表突出显示不缩进第二级
【发布时间】:2013-06-19 12:27:52
【问题描述】:

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

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

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

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

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

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

意外缩进:

【问题讨论】:

标签: cocoa nsoutlineview


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    • 1970-01-01
    • 2013-10-10
    • 1970-01-01
    相关资源
    最近更新 更多