使用源列表样式将自定义子视图添加到NSOutlineView

时间:2011-02-08 22:24:42

标签: objective-c cocoa nsview nsoutlineview nsscrollview

我想在NSOutlineView设置NSTableViewSelectionHighlightStyleSourceList的内容之上添加一些控件,使其看起来像Finder / iTunes / iPhoto一样的源列表。因此,我想要添加的控件应放在整个源列表的上方,但与大纲视图位于同一NSScrollView。它们背后的颜色也应该是源lis的颜色(这是特殊的,因为当窗口失去焦点时它会从浅蓝色变为灰色)。

我已经尝试在其父视图(以NSOutlineView然后是NSClipView)内以编程方式向下移动NSScrollView,但是更改NSOutlineView的框架没有工作(框架根本没有改变)。

干杯

MrMage

1 个答案:

答案 0 :(得分:1)

您所描述的内容 - 控制共享源列表的背景颜色但高于(高于,不高于)内容 - 与Finder或iTunes完全不相似。他们将控件放在窗口的工具栏空间中。事实上,你所描述的听起来完全是一个糟糕的UI决定。

也就是说,您可以通过添加一行或多行“空内容”来实现您的既定目标,即从nil返回outlineView:objectValueForTableColumn:byItem:,并可能使用outlineView:heightOfRowByItem:设置自定义行高然后将您的子视图添加到“空”空间。