如何在NSTableView中更改所选行的颜色?

时间:2015-06-29 12:42:20

标签: macos cocoa nstableview nsview

我有一个基于NSTableView的视图,其中每一行都是NSView。当用户点击任何一行时,它应该有圆角和颜色。 我需要实现像 -

这样的东西

enter image description here

这里垃圾是选中的行。 我找到了一个解决方案here,但它是基于NSTableRowView的解决方案,而不是基于NSView的解决方案。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

为什么NSTableRowView解决方案存在问题?在基于视图的表中,每行包含两个主视图:

  • NSTableCellView 。由于表视图可以有多个列,因此每行包含表中每列的NSTableCellView。
  • NSTableRowView 。对于表中的每一行,它显示在NSTableCellViews后面。默认情况下,这是显示蓝色背景的视图。

Apple's documentation中有一个很好的图表显示了这一点。

因此,创建自己的NSTableRowView绘制红色/橙色背景将是一个很好的方式来实现你想要的行,因为它位于行的NSTableCellViews后面。您可以设置这些行并在df NSTableViewDelegate方法中返回它们。