gpt4 book ai didi

objective-c - 使用 NSFontPanel 在运行时更改 NSTableView 的字体、字体颜色和背景颜色?

转载 作者:搜寻专家 更新时间:2023-10-30 19:47:34 25 4
gpt4 key购买 nike

我想让用户能够更改基于 View 的 NSTableView 的字体。我正在使用 Cocoa 绑定(bind)和核心数据。在我的测试代码中,我确实有一个 changeFont: 方法,当我按下与字体相关的组合键时,它会立即被调用,比如 cmd-I cmd-B,但到目前为止我还没有成功更改表格 View 的实际字体:

- (void)changeFont:(id)sender
{
NSFont *oldFont = [self.airportTableView font];
NSFont *newFont = [sender convertFont:oldFont];
NSLog(@"sender: %@ oldfont: %@, newFont: %@ fontmanager selected: %@, font panel selected: %@",
sender, oldFont, newFont, [sender selectedFont], [sender convertFont:[sender selectedFont]]);
[self.airportTableView setFont:newFont];
}

产生以下输出:

sender: <NSFontManager: 0x6080000b4580> oldfont: (null), newFont: (null) fontmanager selected: (null), font panel selected: (null)

即使是这段微不足道的代码:

font = [NSFont boldSystemFontOfSize:12];
[self.airportTableView setFont:font];
NSFont *oldFont = [self.airportTableView font];
NSLog(@"oldfont: %@",oldFont);

只会导致:

oldfont: (null)

有哪位好心人能提供一些允许用户更改 NSTableView 字体的代码吗?

最佳答案

您必须设置单元格的字体。不是表格 View 。使用以下委托(delegate)方法:

- (NSCell *)tableView:(NSTableView *)tableView dataCellForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
NSTextFieldCell *cell = [tableColumn dataCell];
[cell setFont:[NSFont systemFontOfSize:11]];
[cell setTextColor: [NSColor lightGrayColor]];

return cell;
}

关于objective-c - 使用 NSFontPanel 在运行时更改 NSTableView 的字体、字体颜色和背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24496760/

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