2009-09-08 5 views
0

У меня есть NSTableView, который использует объект контроллера для отображения NIB в качестве источника данных. Я реализую неофициальный протокол NSTableView.NSTableView не увеличивает количество элементов в таблице?

Этот NSTableView получает свои значения из Core Data. Я запускаю приложение, загружаю все значения, которые у меня есть в XML, и затем показываю их.

Моя проблема заключается в том, что NSTableView не добавляет никаких новых строк в конец таблицы. Если я запускаю приложение без значений в постоянном хранилище и добавляю другое (добавление значений работает, так как я могу их сохранить в XML), представление таблицы просто игнорирует новое значение.

Если я добавлю значение, которое, как я знаю, пойдет в конец таблицы (содержимое организовано в алфавитном порядке), я не увижу новое значение.

Если я и значение, которое, как я знаю, не попадет в конец таблицы, значение будет добавлено, я увижу его на столе, но последнее значение в таблице будет вытолкнуто и исчезнет ,

Я заметил, что - (int) numberOfRowsInTableView: (NSTableView *) tv вызывается только при запуске приложения, а не когда я делаю [tableView reloadData]. Что заставляет это событие уволить? Я попытался запустить его вручную, прежде чем вызывать reloadData в tableView, но, похоже, не работает.

Любые идеи, что может быть причиной этого?

Кто-нибудь сталкивался с чем-то вроде этого? Какие-нибудь подсказки о том, что может быть?

+1

Непонятно из вашего вопроса: используете ли вы привязки или протокол NSTableDataSource для заполнения NSTableView? Вы должны выбрать тот или другой. Если вы используете Core Data, вы должны использовать привязки. – Alex

+0

Я использую протокол NSTableDataSource. Я не использую привязки, потому что мне нужно сделать магию, прежде чем отображать данные на экране. – ruipacheco

+0

Что такое магия? Я бы предположил, что это больше домен подкатегория NSValueTransformer или один из близнецов NSFormatter, но я не могу сказать точно, не зная, что вы делаете. –

ответ

0

Комментарий Alex's заставил меня просмотреть код, в частности привязки в Interface Builder. Оказывается, я установил привязки между таблицей и объектом контроллера и реализовал NSTableDataSource.

Я удалил все привязки и только реализовал протокол NSTableDataSource.

+0

Я бы порекомендовал пойти другим путем. Основные данные и привязки предназначены для совместной работы. –

Смежные вопросы