使用深色背景更改NSTableView中的文本编辑背景颜色

时间:2016-03-10 16:07:32

标签: objective-c cocoa nstableview

我有一个基于视图的NSTableView,背景颜色很深。 如果文本为白色,Cocoa决定文本字段,弹出按钮等中的文本更易读。

这本身很好,我只有这样的问题,当我在文本字段中编辑文本时,编辑时的背景颜色是白色的,带有白色文字。

This is how it looks

是否有一种简单的方法可以轻松实现这一点(编辑时的深色背景或编辑时的深色文本)或者我是否需要使用字段编辑器?

更新

在摆弄了一点之后,我发现将所有单元格视图文本字段上的文本颜色设置为黑色会在编辑时将文本颜色更改为黑色。但它不会影响表格视图中显示的文字颜色。

我不确定这是不是一个错误,但它对我来说就像是一个。

1 个答案:

答案 0 :(得分:1)

您是否尝试覆盖didSelectRowAtIndexPath和didDeselectRowAtIndexPath以自行更新文本颜色?

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = (UITableViewCell *) [tableView cellForRowAtIndexPath:indexPath];
    if([cell isEditing]) {
        cell.titleLabel.textColor = [UIColor blackColor];
    }
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = (UITableViewCell *) [tableView cellForRowAtIndexPath:indexPath];
    if([cell isEditing]) {
        cell.titleLabel.textColor = [UIColor whiteColor];
    }
}

此代码适用于iOS平台,但应易于适应OSX平台。