2013-08-29 1 views
1

Я новичок в Cocoa. Я успешно создал TableView с двумя colomns, содержащими текст, используя NSArrayController и привязку. Теперь я хочу добиться того же самого для пользовательского TableView. Мой TableView содержит два colomns, один должен содержать изображение, а другой должен содержать описание изображения. Я хочу заполнить таблицу, используя привязку. Может ли кто-нибудь сказать мне, как это сделать.Как создать NSTableview с пользовательской ячейкой, используя привязку

ответ

0

Выполните следующие действия:

В XIb/NIB файлов:

  1. Берут NSArrayController.
  2. Возьмите NSTableView и возьмите две колонки.
  3. В первом столбце перетащите NSImageCell и второй по умолчанию будет NSTextCell.
  4. В настоящее время привязка:
    • Первый массивный контроллер вашего NSObject или FileOwners.
    • Ваш mutablearray для arraycontroller.
    • Столбец первого столбца для контроллера массива, внутри которого должен быть установлен ключ контроллера. Объекты и путь к модели должны быть img.
    • Столбец второго столбца для контроллера массива, внутри которого должен быть установлен ключ контроллера. Объекты и путь к модели должны быть desc.

(Примечание: В то время как привязка к столбцам таблицы, пожалуйста, проверьте один вариант Подтверждает Немедленно, если вы используете> 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];