Big Sur 添加了一种新的属性样式,默认为自动。即使我将它设置为全宽,我仍然可以看到我在 Xcode 12.1 和 12.2 上运行的应用程序之间的差异 这是一个示例应用程序,其中一个简单的单元格将其背景绘制为红色。
在调试界面时,我可以看到边缘包含表格行。这意味着单元格没有占据行的整个宽度。
请让我知道是否有办法让单个单元格视图扩展整个表格视图的宽度。
这是示例应用程序:https ://www.dropbox.com/s/zx4qqnllja1sox/test.zip?dl=0
Big Sur 添加了一种新的属性样式,默认为自动。即使我将它设置为全宽,我仍然可以看到我在 Xcode 12.1 和 12.2 上运行的应用程序之间的差异 这是一个示例应用程序,其中一个简单的单元格将其背景绘制为红色。
在调试界面时,我可以看到边缘包含表格行。这意味着单元格没有占据行的整个宽度。
请让我知道是否有办法让单个单元格视图扩展整个表格视图的宽度。
这是示例应用程序:https ://www.dropbox.com/s/zx4qqnllja1sox/test.zip?dl=0
.fullWidth
实际上包括行级别的水平填充。
您需要进行设置tableView.style = .plain
以恢复大苏尔之前的外观和感觉。
从头NSTableView
文件:
@available(macOS 11.0, *)
public enum Style : Int {
// Automatically infers the effectiveStyle from the table view hierarchy.
case automatic = 0
// Edge-to-edge style with standard content padding at the ends of each row. This content padding is constant and independent of intercellSpacing.
case fullWidth = 1
// Inset style with rounded corners selection
case inset = 2
/* The source list style of NSTableView. Setting this style will have the side effect of setting the background color to "source list".
Additionally in NSOutlineView, the following properties may change to get the standard "source list" look: indentationPerLevel, rowHeight and intercellSpacing. After setting the style it is possible to change any of the other properties as required.
In 10.11, if the background color has been changed from the "source list" background color to something else, the table will no longer draw the selection as a source list blur style, and instead will draw a normal selection highlight.
This replaces NSTableViewSelectionHighlightStyleSourceList which is to be deprecated.
*/
case sourceList = 3
// A plain style. No insets, padding or any other kind of decoration applied to the row or its background. The cells are equally spaced in the row using intercellSpacing.width.
case plain = 4
}
☝️ 一个有趣的观察。您可以在 Interface Builder 中设置简单的样式,但很多人报告说它不起作用。如果您不在Big Sur 上编译,似乎将不会应用它。在这种情况下,就像其他答案所暗示的那样,在代码中指定样式就可以了:
if #available(macOS 11.0, *) {
self.tableView.style = .plain
}