Таблица не обновляет записи после загрузки данных в массив - PullRequest
0 голосов
/ 31 января 2012

У меня есть служба, которая загружает данные в мое табличное представление.Когда служба загрузила данные, я загружаю данные в свою модель:

[self.model.entries removeAllObjects];
[self.model.entries addObjectsFromArray:objects];

Теперь мне интересно, являются ли эти два вызова «связывающими», чтобы табличное представление знало, что оно должно обновитьданные, которые напрямую связаны с self.model.entries.Я спрашиваю об этом, потому что после того, как служба завершена, таблица больше не запрашивает у моего делегата количество ячеек таблицы, поэтому кажется, что привязка не срабатывает.

Я думаю, что я мог бы вызвать reloadData наtableview, но это больше не будет соответствовать «философии связывания», верно?

Обратите внимание, что мой класс модели возвращает новый NSMutableArray, если его нет.Мне не ясно, является ли это правильным подходом к использованию привязок.

1 Ответ

1 голос
/ 31 января 2012

Для полной совместимости привязок вы должны связывать через NSController ... в этом случае, предположительно NSArrayController.

Связываясь напрямую с моделью, вы нарушаете шаблон MVC, и нет, я не верючто NSTableView будет воспринимать изменения при прямой привязке к модели.

Привязать ваше табличное представление, например, к selectedObjects NSArrayController, и использовать методы NSArrayController, например:

-add:
-removeObjects:
-insert:

дляуправлять контентом.Представление таблицы автоматически определит эти изменения.

...