我的NSOutlineView中有一些行希望永久隐藏(出于与我的数据结构有关的原因)。
在10.13上,使用自动行高和自动布局,我无法查看某些数据行,因此它们对用户隐藏了。
现在我要在10.11上启用我的应用程序,因此我必须手动计算行高。 NSOutlineViewDelegate函数'heightOfRowByItem'坚持将行高度设置为非零,因此我不能再以相同的方式完全隐藏行了。
NSTableView的“ hideRows”方法似乎是一种替代方法。它可以隐藏特定的行而不隐藏其子级(对我而言是完美的)。唯一的问题是,当我拖动行时,一切似乎都“取消隐藏”。
有人知道吗: -如何阻止在拖动时取消隐藏行(我看不到任何文档) -在NSTableView / NSOutlineView中具有不可见行的其他方法。
谢谢
答案 0 :(得分:0)
创建一个新类作为我们的NSOutlineView项,并更新这些项以反映您的基础模型的状态。看起来可能需要做更多的工作,但是比起在NSOutlineViewDataSource / Delegate方法中变得聪明起来,它要愉快得多。对我来说,在尝试使用现有模型来驱动NSOutlineView时,使用NSOutlineView最为困难,而当创建一个类作为项目时,使用NSOutlineView最简单。
这还有一个优点,就是不会使模型只具有与大纲视图呈现方式有关的功能和状态。