如何更改 NSTableHeaderCell 的字体大小

Oli*_*ler 5 size fonts cocoa nstableview swift

我试图在代码中更改 NSTableView 的字体大小,以允许用户根据自己的喜好更改它。我通过更改每个 NSTableCellView 的字体大小成功了,但通过标题单元格失败了。

我试图这样做

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

标题单元格的 stringValue 将进行相应设置,但大小不会改变。如何更改标题的字体大小?

谢谢

奥利弗

tom*_*wel 1

您可以创建一个NSTableHeaderCell子类并实现您想要更改的属性。

在 Objective-C 中(我不擅长 Swift):

@implementation CustomTableHeaderCell

-(NSFont *)font {
    return [NSFont fontWithName:@"Arial" size:22];
}

// you can alse custom textColor
-(NSColor *)textColor {
    return [NSColor redColor];
}

@end
Run Code Online (Sandbox Code Playgroud)

分配CustomTableHeaderCell

CustomTableHeaderCell *headerCell = [[CustomTableHeaderCell alloc] init];
headerCell.stringValue = @"Header title";
self.tableView.tableColumns[0].headerCell = headerCell;
Run Code Online (Sandbox Code Playgroud)

截屏

在Cocoa中,有很多东西你不能通过改变它的样式cell.font = ...,你需要创建一个子类。