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