1

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

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

因为只有文件夹图标才会有这个问题,所以我真的只关心在那个上下文中修复间距。(注意:我已经缓存了图标以供重复使用,因此如果有必要,我可以处理文件夹图像,因为它只会发生一次。)我不确定是否可以在 NSBrowserCell 实例中进行调整,但我还没有找到任何可行的方法,不是因为缺乏尝试。


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

4

1 回答 1

3

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

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

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

于 2009-09-18T08:30:00.180 回答