我正在使用基于 View 的 NSOutlineView ,它的 selectionHighlightStyle 设置为 NSTableViewSelectionHighlightStyleSourceList

我想覆盖某些行的选择样式(背景)并绘制不同的颜色/渐变。

到目前为止,我尝试的是创建自定义 NSTableRowView 并通过 outlineView:rowViewForItem: 返回它。
我验证了我的自定义行 View 是由大纲 View 委托(delegate)创建和返回的。
但是,我在自定义行 View 中覆盖的任何方法都没有被调用。

我试图覆盖 drawBackgroundInRect:drawSelectionInRect:drawSeparatorInRect: 甚至 drawRect: 。这些都没有被调用,永远。

我怀疑大纲 View 在设置为源列表样式时会执行一些自定义“魔术”,但是我在文档中没有发现任何内容表明在这种情况下根本不会使用自定义 NSTableRowView .

最佳答案

您在使用优胜美地吗?
来自 Apple 的文档 Adopting Advanced Features of the new UI in Yosemite



如果将其设置为 NSTableViewSelectionHighlightStyleRegular 并覆盖 drawRect,它应该可以工作。

关于objective-c - 基于 View 的自定义选择样式 "Source List"NSOutlineView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26884021/

10-14 16:28
查看更多