如何使用Binding使用Custom Cell创建NSTableview

时间:2013-08-29 04:26:33

标签: objective-c cocoa nstableview cocoa-bindings custom-cell

我是Cocoa的新手。我成功创建了一个带有两个colomns的TableView,它们都包含文本,使用NSArrayController和绑定。现在我想为自定义TableView实现相同的功能。我的TableView包含两个colomns,一个应该包含图像,另一个应该包含图像描述。我想用绑定填充我的表。任何人都可以告诉我如何实现这一目标。

1 个答案:

答案 0 :(得分:0)

请按照以下步骤操作:

在Xib / Nib文件中:

  1. 采取NSArrayController。
  2. 选择NSTableView并选择两列。
  3. 在第一列中拖动NSImageCell,第二列默认为NSTextCell。
  4. 现在绑定:
    • 您的NSObject或FileOwners的第一个数组控制器。
    • 你的mutablearray到arraycontroller。
    • Tableview第一列到数组控制器,其控制器键应该是arrangesObjects和modelkeypath应该是img。
    • Tableview第二列到数组控制器,其控制器键应该是arrangesObjects和modelkeypath应该是desc。
  5. (注意:在绑定到表格列时,请选中一个选项立即验证,如果您使用> 10.6 os版本)

    在头文件中:

    NSString *img;
    NSString *desc;
    NSMutableArray *arr;
    IBOutlet NSArrayController *arrCont;
    @property (readwrite,retain) NSString *img;
    @property (readwrite,retain) NSString *desc;
    @property (readwrite,retain) NSMutableArray *arr;
    

    在实施档案中:

    self.arr = [[NSMutableArray alloc] init];
    NSString *imageName = [[NSBundle mainBundle] pathForResource:@"yourImageName" ofType:@"tiff"];
    NSImage *photoImage = [[NSImage alloc] initWithContentsOfFile:imageName];
    NSMutableDictionary *dc = [NSMutableDictionary dictionary];
    [dc setObject:photoImage forKey:@"img"];
    [dc setObject:@"noImage" forKey:@"desc"];
    [arr addObject:dc];
    [self setArr:arr];