gpt4 book ai didi

cocoa - 根据表格列的 isEnabled 出价自定义 NSTextFieldCell

转载 作者:行者123 更新时间:2023-12-03 17:45:52 25 4
gpt4 key购买 nike

我基本上想要实现的是更改表格中单元格的格式,以便在单元格未启用时将其清空。

为了定义是否启用表列中的单元格,我使用启用的绑定(bind)进行了绑定(bind),并且工作正常,启用了表的某些行中的单元格,而不是其他行中的单元格。我定义了 NSTextFieldCell 的子类,用于更改单元格的格式。这似乎也工作正常,但我无法根据表中的单元格是否启用来触发更改。最初我尝试通过在单元格上调用 [self isEnabled] 来激活开关。这有效,但开关从未激活,我认为这是因为定义单元格是否启用的原始绑定(bind)是到表列而不是到单元格。

有没有人有一种方法可以轻松实现这一点。我注意到的唯一方法是对 NSTableColumn 进行子类化并编写 dataCellForRow 的自定义版本:但这似乎不是解决此问题的最佳方法。

最佳答案

我使用 TableView 的委托(delegate)方法在显示单元格之前设置文本颜色。您可以将单元格颜色设置为背景颜色,以使其在单元格禁用时不可见。

- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex{    NSColor* theColor = [NSColor blackColor];    BOOL enable = YES;    if(![self tableView:aTableView shouldSelectRow:rowIndex])    {            theColor = [aCell backgroundColor];            enable = NO;    }    [aCell setTextColor:theColor];    [aCell setEnabled:enable];}

我简单测试了这段代码并且它有效。我没有使用绑定(bind),但只要表的委托(delegate)设置正确,这就不重要。

关于cocoa - 根据表格列的 isEnabled 出价自定义 NSTextFieldCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/515776/

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