gpt4 book ai didi

objective-c - 每行着色 NSTableView 文本

转载 作者:太空狗 更新时间:2023-10-30 03:51:38 25 4
gpt4 key购买 nike

我有一个 NSTableView,它显示我拥有的一组对象。对于这些对象(行)中的每一个,我想根据我在每个对象上运行的函数的结果来更改显示的文本的颜色;

因此,例如,表中存在于另一个列表(或其他一些要求)中的所有对象我想以绿色文本显示它们,而不存在的对象以红色显示。

我该怎么做?

最佳答案

假设您有 NSTextFieldCell在你的表格中(对于其他单元格,设置文本颜色可能会有所不同),你可以通过实现 NSTableView 来实现的委托(delegate)方法。

首先,您必须为 NSTableView 定义一个委托(delegate),在 Interface Builder 或您的代码中。例如,这可以是您的应用程序 Controller 。

然后,只需要实现下面的方法:

- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex {
NSTextFieldCell *cell = aCell;
if (...) {
[cell setTextColor:[NSColor greenColor]];
} else if (...) {
[cell setTextColor:[NSColor redColor]];
} else {
[cell setTextColor:[NSColor blackColor]];
}
}

每次 NSTableView 绘制一个单元格时,您都有机会在绘制之前修改它。

查看 NSTableViewDelegate文档页面了解更多详情。

关于objective-c - 每行着色 NSTableView 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2786362/

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