NSOutlineView使用源列表突出显示而不是缩进第二级。

4
我遇到了一个非常奇怪的问题:
我有一个设置为NSTableViewSelectionHighlightStyleSourceList的NSOutlineView。在某些情况下,第二层不会缩进,并以与根节点相同的级别显示。
我认为这是因为第一级被期望是"组"级别。然而,在10.8上默认情况下所有内容都正确缩进。我只在测试10.7时发现了这个问题。看起来这种行为在版本之间改变了。
如果满足以下条件,则第二级不会缩进:
- 在Mac OS X 10.7 Lion上(始终具有相同的行为) - 或者在10.8上,仅当我实现 - (BOOL)outlineView:(NSOutlineView *)outlineView isGroupItem:(id)item 返回NO时
如何使每个级别按预期的分层布局缩进并保持源列表样式?
意外的缩进: unexpected indentation

尝试将大纲视图从源更改为常规或正常。请参见:https://dev59.com/JFrUa4cB1Zd3GeqPgAgh - Micha Mazaheri
@MichaMazaheri [...] 并保持源列表样式? - Vince
1个回答

1
似乎只有在第三级才开始缩进。因此,为了解决这个问题,您需要添加一个节点来包装所有当前的根节点。该根节点将被设计得非常像默认的OSX组节点:

enter image description here

不是很理想,取决于您的 UI,但比使用常规的 NSOutlineView 样式要好。如果您不想显示根标题,则可以使用 outlineView:heightOfRowByItem: 将高度设置为 0。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接