【问题标题】:How do you hide the first header element in a NSOutlineView?如何隐藏 NSOutlineView 中的第一个标题元素?
【发布时间】:2017-08-22 17:23:14
【问题描述】:

在上面的 Notes 应用程序图像中,您会看到第一个根项目未显示在标题单元格中。你只是看到一个孩子有所有笔记,这怎么能做到?

【问题讨论】:

    标签: macos nsoutlineview


    【解决方案1】:

    我知道使用 UICollectionView 您通常会在布局委托方法中设置setHeaderReferenceSize=CGSizeZero,或者通过子类化布局类 UICollectionViewFlowLayout 并在那里设置 setHeaderReferenceSize 属性。我建议查看 NSOutlineView 的类文档并找到确定标题大小的属性并进行相应调整。

    【讨论】:

    • 他们有一个 'optional func outlineView(_ outlineView: NSOutlineView, heightOfRowByItem item: Any) -> CGFloat' 但是它在文档中说此方法返回的值不应包括单元间距,并且必须更大大于 0。所以这对我没有帮助。
    • 该死。所以,NSOutlineView 继承自 NSTableView。听起来另一个可怜的灵魂之前曾试图抑制单个部分的标题(在这种情况下,也是第一部分)。这是 ObjC 解决方案,但我希望它可能在概念上或上下文上有所帮助。 stackoverflow.com/questions/19056428/…
    • 他们隐藏了额外的像素哈哈 :) 我可以给 NSOutlineView 一个 -2 像素的边距偏移量。您可能会认为,如果 Apple 在他们的应用程序中使用它,那将会更加完善。
    • 什么?哈哈哈。他们太老套了!让我隐约想起 UICollectionView 中的一个错误,我们必须将 setReferenceSizeForHeader 设置为 .00001 才能在该部分没有项目时仍然显示该部分。
    猜你喜欢
    • 2019-12-28
    • 2019-11-09
    • 2015-08-22
    • 2023-03-22
    • 2013-07-29
    • 2013-03-22
    • 2021-09-22
    • 1970-01-01
    • 2012-06-03
    相关资源
    最近更新 更多