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 は ArrangeObjects で、Model Key Path はです。check1

ビューベースでは、チェックボックス コントロールをモデル キー パスのテーブル セル ビューにNSTableViewバインドする必要があります。objectValue.check1

于 2013-02-03T18:37:07.810 に答える