2009-06-25 61 views
0

我有NSTableView绑定到一个NSArrayController。在我的模型中,我有一个BOOL字段。我试图将该值绑定到列。它会正确显示(值为YES时为1,值为NO时为0),但它是只读的。 =(当我试图编辑一个值,我不能提交 - 当我按下输入什么都没有发生,setter从不被调用。结合它像往常一样,所有的作品,但我不能做同样的编程=(NSTableColumn绑定到一个BOOL值

这列如何创建并添加:

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]; 

我有一个问题只与布尔值,如果我绑定相同的列到其他字段(只是更改keyPath)都可以正常工作。

+0

顺便说一句,与NSTextCell相同的问题 - 我无法编辑它.. – 2009-06-25 02:02:01

回答

0

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

+0

对不起,我没有足够好地描述它。实际上,我是绑定列。该问题仅适用于BOOL值 - 字符串值和整数值正常工作。 – 2009-06-25 02:37:06

+0

在这种情况下,请编辑您的问题以包含Bindings检查器的屏幕截图,并选中该列。 – 2009-06-25 04:44:13

+0

问题是,我可以使它与IB工作没有任何问题。但我不能让它工作,如果我创建列并将其添加到表中的运行时进程 - 它适用于其他领域,但不适用于布尔字段。 – 2009-06-25 15:13:52

1

它的只读=(当我试图编辑值我不能提交 - 。当我按下输入什么也没有发生,二传则永远不会调用列是可编辑

然后,在你的代码片段:

[column setEditable:NO]; 

你列不可编辑这就是为什么编辑不工作变动NO到。 0。

顺便说一句:有没有原因显示这个值为文本而不是复选框?

0

什么是绑定到arrC,我假设你的数组控制器?

是否将arrC绑定到数组?数组中的对象绑定到控制器是什么? Coredata实体? NSMutableDictionaries?

0

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

相关问题