我将NSTableView绑定到一个NSArrayController。在我的模型中,我有一个BOOL字段。我正在尝试将该值绑定到列。它正确显示(1表示value为YES,0表示value表示NO),但它是只读的。=(当我试图编辑一个值时,我不能提交它--当我按enter键时,什么都没有发生,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),一切都可以正常工作。
发布于 2009-06-25 22:21:58
it's readonly =(.当我试图编辑一个值时,我无法提交它--当我按enter键时,什么都没有发生,setter永远不会被调用。列是可编辑的。
然后,在您的代码片段中:
列集可编辑:否;
您的列不可编辑。这就是编辑不起作用的原因。将NO更改为YES。
顺便问一下:有没有理由将这个值显示为文本而不是复选框?
发布于 2009-06-25 02:32:14
您需要绑定表列,而不是单元格。
发布于 2009-06-29 04:02:14
绑定到arrC的是什么,我假设它是您的数组控制器?
arrC是否绑定到数组?数组中绑定到控制器的对象是什么?核心数据实体?NSMutableDictionaries?
https://stackoverflow.com/questions/1041783
复制相似问题