NSTableViewDataSource или NSArrayController? - PullRequest
1 голос
/ 05 февраля 2011

Мне нужно загружать данные динамически, когда пользователь прокручивает NSTableView.Например, таблица может отображать 50 строк, и по мере ее прокрутки мне нужно получать больше данных из сети.Количество объектов / строк известно заранее, поэтому я хочу, чтобы в таблице было правильное количество строк с начала, но при загрузке данных отображаются пустые ячейки.

Я использую Core Data, поэтомуЛегко подключить стол к моей модели с помощью привязок.Это также позаботится об обновлении ячеек по мере поступления и анализа данных.Я попытался выяснить, как я мог бы сделать это, используя подклассы NSArrayController, но из того, что я могу сказать, нет информации, поступающей из таблицы в контроллер, о том, какие строки действительно нуждаются в данных.Поэтому я думаю о реализации NSTableViewDataSource вместо этого, где я могу легко проверить, прокручивалась ли таблица за пределы строк, для которых доступны данные.С другой стороны, я не знаю, получу ли я автоматически обновлять клетки с помощью этого решения.

1 Ответ

3 голосов
/ 11 февраля 2011

В случае, если кто-нибудь сталкивается с этим, вот мой собственный ответ:

Да , вам нужно реализовать NSTableViewDataSource на контроллере, наблюдать за изменениями в данных и вызывать reloadData вручнуютаблица, когда происходят изменения.Основная причина для этого заключается в том, что вы можете отложить загрузку данных до тех пор, пока они действительно не понадобятся (когда прокручивается табличное представление).Использование протокола источника данных информирует вас о том, какие индексы запрашиваются.

...