我的NSOutlineView中有一些行希望永久隐藏(出于与我的数据结构有关的原因)。

在10.13上,使用自动行高和自动布局,我仅能查看某些数据行,因此对用户隐藏了它们。

现在,我将在10.11上提供我的应用程序,因此我必须手动计算行高。 NSOutlineViewDelegate函数'heightOfRowByItem'坚持非零行高,因此我不能再以相同的方式完全隐藏行。

NSTableView的“ hideRows”方法似乎是一种替代方法。它可以隐藏特定的行而不隐藏其子级(对我而言是完美的)。唯一的问题是,当我拖动行时,所有内容似乎都“隐藏”。

有谁知道:
-如何阻止在拖动时取消隐藏行(我看不到任何文档)
-在NSTableView / NSOutlineView中具有不可见行的其他方法。

谢谢

最佳答案

新建一个类作为我们的NSOutlineView项,并更新这些项以反映您的基础模型的状态。看起来可能需要做更多的工作,但是比起在NSOutlineViewDataSource / Delegate方法中变得聪明起来,它要愉快得多。对我来说,当我尝试使用现有模型来驱动它时,使用NSOutlineView最为困难,而当创建一个类作为项目时,使用NSOutlineView最容易。

这也具有不使您的模型混乱的功能和仅与大纲视图表示有关的状态的优点。

关于cocoa - 永久隐藏NSTableView/NSOutlineView中的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54222695/

10-12 22:01