0

我有一个NSTableView带有复选框的列和一个NSArrayController.

NSTableView绑定到以显示其NSArrayController内容。复选框列绑定到imgArrayController.arrangedObjects.check1. 程序启动时数组为空。我以这种方式在循环中使用 arrayController 添加值:

    [imgArrayController addObject:[NSDictionary dictionaryWithObjectsAndKeys:
        [NSImage imageNamed: [NSString stringWithFormat:@"%@" ,fileName]], @"image", 
        [NSString stringWithFormat:@"%@" ,fileName], @"filename", 
        @"YES", @"check1", 
        nil]];

添加了正确的行数,但是当它尝试将复选框设置为 YES 时出现错误。这是我得到的错误:

2013-02-03 19:11:46.357 Stockuploader[561:303] Error setting value for key path check1 of object {
} (from bound object <NSTableColumn: 0x100152280>   identifier: check1): [<__NSDictionaryI 0x10010c190> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key check1.

有人可以帮我理解我做错了什么吗?这些行出现在表格内,但它们都是空的。

4

1 回答 1

6

尝试使用NSMutableDictionary而不是NSDictionary. 也尝试使用[NSNumber numberWithBool: YES]代替@"YES"(这是一个字符串,而不是布尔值)。

编辑:

在基于单元格的情况下,NSTableView您需要将(而不是单元格本身)绑定到 arrayController,其 Controller Key 为 mappedObjects,Model Key Path 为check1.

在基于视图的情况下,NSTableView您需要将复选框控件绑定到表格单元格视图,其模型键路径为objectValue.check1.

于 2013-02-03T18:37:07.810 回答