gpt4 book ai didi

swift - 如何更改 NSTableHeaderCell 的字体大小

转载 作者:搜寻专家 更新时间:2023-10-31 22:05:17 26 4
gpt4 key购买 nike

我正在尝试在我的代码中更改 NSTableView 的字体大小,以允许用户根据自己的喜好进行更改。我成功地更改了每个 NSTableCellView 的字体大小,但未能通过标题单元格更改。

我是这么想的

let headerCell = NSTableHeaderCell()
let font = NSFont(name: "Arial", size: 22.0)
headerCell.stringValue = "firstname"
headerCell.font = font
customerTable.tableColumns[0].headerCell = headerCell

标题单元格的字符串值将相应设置,但大小不变。如何更改标题的字体大小?

谢谢

奥利弗

最佳答案

所以,最后我只能通过子类化 NSTableHeaderCell 来解决这个问题。这有点奇怪,因为 Swift 和 Cocoa 总是倾向于支持组合而不是继承,但无论如何。

swift 3.1

final class CustomTableHeaderCell : NSTableHeaderCell {

override init(textCell: String) {
super.init(textCell: textCell)
self.font = NSFont.boldSystemFont(ofSize: 18) // Or set NSFont to your choice
self.backgroundColor = NSColor.white
}

required init(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}

override func draw(withFrame cellFrame: NSRect, in controlView: NSView) {
// skip super.drawWithFrame(), since that is what draws borders
self.drawInterior(withFrame: cellFrame, in: controlView)
}

override func drawInterior(withFrame cellFrame: NSRect, in controlView: NSView) {
let titleRect = self.titleRect(forBounds: cellFrame)
self.attributedStringValue.draw(in: titleRect)
}
}

关于swift - 如何更改 NSTableHeaderCell 的字体大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43510646/

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