在NSOutlineView中增加太紧的图标间距

时间:2009-09-18 05:22:22

标签: objective-c cocoa nsimage nsoutlineview spacing

我正在编写一个Cocoa应用程序,它在NSOutlineView中显示存档文件的内容。我在大纲列中为NSBrowserCell提供了自定义图标,但我无法将间距调得恰到好处 - 文件夹图标总是显得太靠近显示三角形,如下所示。 (FWIW,VersionsBetterZip都显示相似的数据而没有间距问题。)

NSOutlineView-icon-spacing http://img.skitch.com/20090918-tgfjh9x8dhgqxqnb2su8fby4ng.jpg

由于只有文件夹图标会出现此问题,我真的只关心修复该上下文中的间距。 (注意:我已经缓存了图标以便重复使用,所以我在必要时操作文件夹图像没有问题,因为它只会发生一次。)我不确定我是否可以在NSBrowserCell实例中调整,但我还没有找到任何可行的东西,而不是因为没有尝试。


对于好奇,JarScan是一个方便(免费)的命令行工具,用于在JAR文件中定位Java类。

1 个答案:

答案 0 :(得分:3)

“大纲表列”(请参阅​​-[NSOutlineView outlineTableColumn])是NSTableColumn,它根据需要绘制三角形和左边距以显示层次结构。显示表格内容的默认单元格为NSTextFieldCell。要增加您看到的间距,您必须在自定义NSTextFieldCell子类中进行绘制。通过使用x偏移绘制图像来实现间距。 (无论使用哪个NSCell子类,大纲视图都将绘制显示三角形。)

请注意,当可以输入单元格,选择进行编辑以及工具提示时,您可能必须覆盖以下方法才能正确绘制:

默认情况下,文本字段会忽略您的自定义文本rects,这些将会奇怪地绘制。