首页 > 解决方案 > 如何在 NSTableView 中的行之间添加空格

问题描述

我正在尝试在 NSTableView 的行之间添加空格,就像它在这里的样子。

但是,目前,我的行看起来像这样,它们之间的间距为 0。

是否可以添加这些空格?我找到了这篇关于如何做的帖子,但那是针对 UITableView 的,我认为你不能用 NSTableView 添加部分。我尝试的另一件事是在表格视图上使用intercellSpacing ,如下所示:

tableView.intercellSpacing = NSSize(width: 0, height: 80)

但是,这只会增加每行的高度,而不是增加它们之间的空间。

最后,我研究了drawSeparator,它看起来很有希望,但文档有限。扩展 NSTableRowView 并覆盖 drawSeparator 方法会起作用吗,基本上是通过在空白处绘制作为分隔符?如果是这样,我将如何让我的表格视图使用我的自定义行视图类?

如果这些选项都不起作用,我也愿意伪造效果,可能是通过让行的实际内容小于行本身并使用剩余空间作为行之间的填充。但是,我不确定这是否可行,因为我现在使用的是 NSShadow,它突出显示了每一行的边界。

标签: swiftmacosnstableview

解决方案


找到了解决此问题的方法。以前,每行包含两列,一列用于文本字段,一列用于按钮。但是,我通过将所有文本字段和按钮放入单个列来更改它,这样每行只有一个单元格。然后我可以将 NSShadow 和其他样式应用于 NSTableCellView 而不是 NSTableRowView。这意味着我现在可以使用 intercellSpacing 在单元格之间创建垂直间距:

tableView.intercellSpacing = NSSize(width: 0, height: 80)

这些行仍然是接触的,但我已经禁用了它们的边框/突出显示,所以你实际上看不到它们。另一方面,单元格可见的,您可以根据需要调整它们的间距/样式。


推荐阅读