Swift NSOutlineView显示三角形垂直偏离中心
我正在使用macOS应用程序上的Swift NSOutlineView显示三角形垂直偏离中心,swift,macos,cocoa,nsoutlineview,Swift,Macos,Cocoa,Nsoutlineview,我正在使用macOS应用程序上的NSOutlineView,它为可以扩展的项目提供了公开三角形 我还创建了自定义NSTableCellView项,而不是使用基本的单元格项。这使我能够创建我想要的可视化单元格 我的问题是,当它们被显示时,左侧的披露三角形没有垂直居中 请注意,这些三角形没有正确对齐。它们比应该的低了一点。有时,如果您滚动到别处并返回,它们会自动正确对齐。以前是否有人能够解决此问题 值得一提的是,我对单元格也使用了以下代码 self.outlineView.rowHeight =
NSOutlineView
,它为可以扩展的项目提供了公开三角形
我还创建了自定义NSTableCellView
项,而不是使用基本的单元格项。这使我能够创建我想要的可视化单元格
我的问题是,当它们被显示时,左侧的披露三角形没有垂直居中
请注意,这些三角形没有正确对齐。它们比应该的低了一点。有时,如果您滚动到别处并返回,它们会自动正确对齐。以前是否有人能够解决此问题
值得一提的是,我对单元格也使用了以下代码
self.outlineView.rowHeight = CGFloat(integerLiteral: 66)
self.outlineView.usesAutomaticRowHeights = true
如果不看看你是如何建立你的项目的,就很难找出问题所在,但我要试一试 首先,当
useAutomaticRowHeights
设置为true
时,大纲视图使用自动布局来定位单元视图。因此,您需要利用故事板或Nib文件中的约束,否则事情会表现得很奇怪(请参见:您的图片)。如果我不得不猜测的话,您在Interface Builder中设置的原型单元视图正在将其autoresizingMask
转换为自动布局约束(这通常会导致大量问题)
我要做的是:
NSTableCellView
实例。(如果看不到文档大纲,可以单击主菜单中的编辑器»显示文档大纲中的项目打开文档大纲)usesAutomaticRowHeights
是macOS High Sierra中的一个新API(史蒂夫·乔布斯不再在苹果开发者中击败它,让一切正常工作)™), 可能有一些我不知道的问题
或者,您可以将UseSauticRowHeights
设置为false
,并使某些对象(例如视图控制器、NSObject
子类等)符合NSOutlineViewDeleteGate
协议,并实现outlineView(u:heightOfRowByItem:)
方法返回不同行所需的任意高度。采用这种方法调整行大小的好处是,您可以允许某些行变大或变小,具体取决于相应项目的角色。关于这一点,有很多教程,因此我不会在这里重复一个不完整的解释,但请随意使用谷歌“符合NSOutlineViewDelegate协议”了解更多信息
不管怎样,试试上面的步骤,看看他们是否为你做了什么,如果他们没有,请告诉我。我可以根据你的需要和你一起深入兔子洞,所以尽管问吧。祝你好运