swift - 如何在 NSTableView 中的行之间添加空格
问题描述
我正在尝试在 NSTableView 的行之间添加空格,就像它在这里的样子。
但是,目前,我的行看起来像这样,它们之间的间距为 0。
是否可以添加这些空格?我找到了这篇关于如何做的帖子,但那是针对 UITableView 的,我认为你不能用 NSTableView 添加部分。我尝试的另一件事是在表格视图上使用intercellSpacing ,如下所示:
tableView.intercellSpacing = NSSize(width: 0, height: 80)
但是,这只会增加每行的高度,而不是增加它们之间的空间。
最后,我研究了drawSeparator,它看起来很有希望,但文档有限。扩展 NSTableRowView 并覆盖 drawSeparator 方法会起作用吗,基本上是通过在空白处绘制作为分隔符?如果是这样,我将如何让我的表格视图使用我的自定义行视图类?
如果这些选项都不起作用,我也愿意伪造效果,可能是通过让行的实际内容小于行本身并使用剩余空间作为行之间的填充。但是,我不确定这是否可行,因为我现在使用的是 NSShadow,它突出显示了每一行的边界。
解决方案
找到了解决此问题的方法。以前,每行包含两列,一列用于文本字段,一列用于按钮。但是,我通过将所有文本字段和按钮放入单个列来更改它,这样每行只有一个单元格。然后我可以将 NSShadow 和其他样式应用于 NSTableCellView 而不是 NSTableRowView。这意味着我现在可以使用 intercellSpacing 在单元格之间创建垂直间距:
tableView.intercellSpacing = NSSize(width: 0, height: 80)
这些行仍然是接触的,但我已经禁用了它们的边框/突出显示,所以你实际上看不到它们。另一方面,单元格是可见的,您可以根据需要调整它们的间距/样式。
推荐阅读
- java - 必须有 Java 运行时环境 (JRE) 或 Java 开发工具包 (JDK) 才能运行 Eclipse 安装程序
- angular - 如何在angular6中重复表格
- r - 将列条目转换为具有条目计数的列标题
- abap - SAP ABAP 中阻止在导入新软件期间激活字典对象
- excel - 使用 VBA 将 .xls 批量转换为 .xlsx 而不打开工作簿时出现文件格式错误
- python - 如果模块中可用,是否可以在导入时避免执行检查功能
- c# - UWP - 将 TextBlock.Text 属性绑定到基类和派生类中都存在的属性时引发 AmbiguousMatchException
- python - 我可以在线抑制 mypy 错误吗?
- c# - 字典需要“System.Collections.Generic.IEnumerable`1[ShimbaSchool.Models.EventMessageDepartment]”类型的模型项
- javascript - 为什么 Array 的自定义实现比原生 JavaScript Array 更高效?