Выберите NSTableViewCell через привязки (без tableView:viewForTableColumn:row:)

Могу ли я использовать привязки для волшебного выбора типа NSTableCellView, который мне нужен?

Я успешно перешел с NSTableViews на основе ячеек на NSTableViews на основе представлений. Теперь я хочу перейти от использования методов делегата к привязкам.

Используя делегат, я реализую tableView:viewForTableColumn:row, чтобы вернуть один из трех NSTableCellView, которые я хочу использовать (в зависимости от типа данных). Я установил objectValue, и NSTableCellViews используют его для отображения данных.

Даже сейчас, с привязками, я могу использовать один и тот же метод делегата для возврата одного из представлений; Я просто не ставлю objectValue, а получаю objectValue из привязок. Оно работает.

Я переключился на привязки как для обучения, так и для того, чтобы избавиться от этого кода. Может быть, tableView:viewForTableColumn:row - это именно метод делегата, а не метод источника данных, потому что это все еще ожидаемый способ выбрать правильное представление?

Есть ли лучший (или, скорее, только для привязок) способ сделать это?


person balthisar    schedule 24.05.2014    source источник


Ответы (1)


Один из возможных подходов — создать одно составное представление, объединяющее три отдельных вида. По сути, вы можете встроить существующие представления в представление вкладок, которое не отображает вкладки. Затем вы можете привязать привязку selectedIndex или selectedIdentifier представления вкладки к ключевому пути, проходящему через objectValue, чтобы выбрать, какой из них отображать.

person Ken Thomases    schedule 24.05.2014
comment
Это именно тот новый ответ, на который я надеялся, и он сработал. Спасибо! - person balthisar; 26.05.2014