0

我将 NSTableView 绑定到 NSArrayController。在我的模型中,我有一个 BOOL 字段。我正在尝试将该值绑定到列。它正确显示(值为 YES 时为 1,值为 NO 时为 0),但它是只读的。=(当我试图编辑一个值时我无法提交它——当我按下回车键时没有任何反应,setter 永远不会被调用。列是可编辑的。

我可以成功地将它与 IB 绑定——我只是像往常一样绑定它并且一切正常。但我不能以编程方式做同样的事情=(

这就是列的创建和添加方式:

NSTableColumn *column = [[[NSTableColumn alloc] initWithIdentifier:@"ok"] autorelease];
[column setEditable:YES];
[[column headerCell] setStringValue:@"OK"];
[column bind:@"value" toObject:self.arrC withKeyPath:@"arrangedObjects.ok" options:nil];
[table addTableColumn:column];

我只有 BOOL 值有问题,如果我将同一列绑定到其他字段(只是更改 keyPath)一切正常。

4

4 回答 4

1

它是只读的 =(。当我尝试编辑一个值时,我无法提交它——当我按下回车键时,什么也没有发生,setter 永远不会被调用。列是可编辑的。

然后,在您的代码片段中:

[column setEditable:NO];

您的列不可编辑。这就是编辑不起作用的原因。更改NOYES

顺便说一句:您是否有理由将此值显示为文本而不是复选框?

于 2009-06-25T22:21:57.760 回答
0

我假设是您的阵列控制器与 arrC 绑定的是什么?

arrC 是否绑定到数组?绑定到控制器的数组中的对象是什么?核心数据实体?NSMutable 字典?

于 2009-06-29T04:02:14.433 回答
0

您需要绑定表格列,而不是单元格。

于 2009-06-25T02:32:13.750 回答
0

你需要一个值转换器,特别是 NSNegateBooleanTransformerName。Google for Apple 的“价值转换器编程指南”

于 2009-10-08T15:36:30.503 回答