У меня есть ситуация, когда я использую представления таблиц на основе представлений и не хочу использовать привязки между источником данных и представлением таблицы. В основном это связано с тем, что мой NSTableCellView может иметь несколько подпредставлений, сложную проверку и триггерные вызовы методов в других объектах.
У нас есть очень четкий путь обновления NSTableView с источником данных с помощью:
tableView:viewForTableColumn:row:
Однако в обратном направлении, то есть обновление источника данных с обновлениями в NSTableView, у нас нет ничего такого, что мы имеем для представлений таблиц на основе ячеек:
tableView:setObjectValue:forTableColumn:row:
Вместо этого предлагается шаблон Target Action. Итак, у меня есть в основном 2 вопроса:
- Если я устанавливаю цель и действие для одного конкретного представления или его подпредставления, как мне получить правильную информацию о строке и столбце, чтобы узнать, что нужно обновить в источнике данных?
Должны ли clickedRow и clickedColumn из NSTableView сработать, хотя я отредактировал или изменил один объект подпредставления?
- Как я могу информировать цель (как другой объект, а не экземпляр NSTableView) о строке и столбце, если действие будет передавать, например, NSTextField в качестве параметра?
В основном я могу перейти к clickedColumn и clickedRow (если эти 2 свойства являются правильным ответом на первый вопрос) через дерево подвидов, но я нахожу это довольно неэлегантным решением и подозреваю, что есть лучший способ....
Заранее спасибо....