在 NSTableview 中设置单元格角半径

Set cell corner radius in NSTableview

有没有办法在 NSTableView 中的单元格上制作圆角(最好是阴影)?我找到了一种在 NSScrollView

上获得圆角的方法
 scrollView.wantsLayer = true
 scrollView.layer?.cornerRadius = 20    

但我无法让它在实际的单元格上工作。

编辑。

func numberOfRows(in tableView: NSTableView) -> Int {
    return names.count
}
    
func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any? {
    return names[row]
}   

我在单元格中有 3 个标签,每个标签都使用 Bind To -> Table Cell ViewModel Key Path 中我有 objectValue.theValueIWantToDisplay

使用基于视图的 NSTableView 呈现 table 视图行和 table 视图单元格(它们是不同的,前者是后者的父级)完全是直到一个视图。只需将它们子类化为任何其他视图并使用其许多自定义点。

如果不进行子类化,您应该能够使用 -[NSView setWantsLayer:],然后使用 -[NSView layer]-[CALayer setCornerRadius:]-[NSView setShadow:] 来达到预期的效果。要自定义,请执行 -[NSTableViewDelegate tableView:viewForTableColumn:row:] and/or -[NSTableViewDelegate tableView:rowViewForRow:].