Objective c 透明NSTableView

Objective c 透明NSTableView,objective-c,cocoa,transparency,nstableview,nscell,Objective C,Cocoa,Transparency,Nstableview,Nscell,我想自定义我的NSTableView。我的总体要求如下: 每行将有一个图像和一些文本;图像和文本可能不同 某些单元格可能没有图像 行高取决于一些外部因素 单元格不应该绘制背景,它应该显示NSTableView背景 到目前为止,我能够用一些文本绘制透明单元格。我在谷歌上搜索发现我需要定制每个单元格。现在我有一个问题:我应该保留两列,还是一列就可以了,在左边有一个图像,文本与之相邻 我也知道我需要覆盖两种方法: - (void) drawWithFrame:(NSRect)cellFrame i

我想自定义我的
NSTableView
。我的总体要求如下:

  • 每行将有一个图像和一些文本;图像和文本可能不同
  • 某些单元格可能没有图像
  • 行高取决于一些外部因素
  • 单元格不应该绘制背景,它应该显示
    NSTableView
    背景
到目前为止,我能够用一些文本绘制透明单元格。我在谷歌上搜索发现我需要定制每个单元格。现在我有一个问题:我应该保留两列,还是一列就可以了,在左边有一个图像,文本与之相邻

我也知道我需要覆盖两种方法:

- (void) drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
因此,对于每个单元,我需要绘制/构造单元——有人能指导我吗?我走的方向对吗?使用上述方法,我能否获得具有动态高度的透明背景

每行将有一个图像和一些文本

因此,有两列,一列带有图像单元格,另一列带有文本字段单元格

图像和文本可能不同

我希望如此

某些细胞可能没有图像

没问题

行高取决于一些外部因素

成为表视图的代理,它将询问您行的高度应该是多少

单元格不应该绘制背景

除非你让它这么做,否则它不会

它应该显示NSTableView背景

不管怎样,表视图都将绘制自己的背景,您可以在IB的Inspector中进行设置。如果希望表格视图不绘制背景,则应将其背景颜色设置为“清晰颜色”


您不需要任何自定义单元格。

谢谢peter,让我尝试使用delegate,实际上我正在搜索所有可能的delegate函数,我可以显示透明背景和文本以及两个colo,但我不知道如何在一个列中显示图像。正如我所说,您需要在该列中放置一个图像单元格。请参阅IB用户指南。这些协议的文档中都列出了数据源和委托方法。你好,Peter,我是Cocoa的新手,到目前为止,我已经完成了以下工作:,