gpt4 book ai didi

swift - 更改 NSTableView 中标题的背景颜色

转载 作者:行者123 更新时间:2023-11-28 06:29:07 27 4
gpt4 key购买 nike

我试图在基于 View 的 NSTableView 中更改标题行的背景颜色,但没有成功

试过这个:

tableView.headerView?.layer?.backgroundColor = CGColor.black

还有这个(正如前一段时间在早期的 Obj-C 帖子中所建议的):

for column in tableView.tableColumns {
column.headerCell.backgroundColor = NSColor(red: 0/255, green: 108/255, blue: 178/255, alpha: 1)
column.headerCell.textColor = NSColor.blue
}

最佳答案

创建自定义 NSTableHeaderCell 子类并设置 NSTableColumnheaderCell 属性允许您自定义表格标题行的外观。

Apple 的 documentation建议在自定义标题单元格时覆盖 drawInterior:withFrame 方法,但这不会填充整个单元格的背景颜色 - 需要覆盖 draw:withFrame。调用 drawInterior 将绘制标题的标签和其他元素。如果要使标题的内容在单元格中垂直居中,则需要调整内部框架。

override func draw(withFrame cellFrame: NSRect, in controlView: NSView) {
NSColor.gray.setFill()
NSBezierPath.fill(cellFrame)

let interiorFrame = CGRect(x: cellFrame.origin.x, y: cellFrame.origin.y + 4.0, width: cellFrame.size.width, height: 14.0)
drawInterior(withFrame: interiorFrame, in: controlView)
}

需要注意一件事 - 如果需要,还需要绘制列分隔线。

关于swift - 更改 NSTableView 中标题的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40892426/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com