NSTableView запрашивает данные слишком рано - PullRequest
1 голос
/ 06 сентября 2010

Я столкнулся с небольшой проблемой с NSTableView. Проблема заключается в том, что табличное представление запрашивает данные слишком рано (оно немедленно запрашивает данные у контроллера), так как, например, данные отсутствуют, когда табличное представление запрашивает их. Другие методы, которые собирают данные для отображения в табличном представлении, не завершены к тому времени, когда NSTableView запрашивает данные.

Надеюсь, это имеет какой-то смысл! Я использую Objective-C и делаю Mac Dev (не Iphone), кстати.

В любом случае, есть ли способ обойти это?

Спасибо заранее.

Ответы [ 2 ]

3 голосов
/ 06 сентября 2010

NSTableView запрашивает данные, вероятно, потому что вы сказали, что существует, скажем, 20 строк данных.Как только он узнает, что есть 20 строк, он начнет просить об этом.

Если вы используете делегат источника данных NSTableView, это просто, просто верните 0 для количества строк, пока все не будет готово, - затем верните количество существующих строк.

То есть вам нужны эти вызовы в делегате:

– numberOfRowsInTableView:
– tableView:objectValueForTableColumn:row:

Если вы не используете NSTableViewDataSource и подключили контроллер в Интерфейсном Разработчике, вам придется как-то только датьконтроллер данные, когда все готово.

1 голос
/ 06 сентября 2010

Похоже, вы заполняете табличное представление асинхронно? Если это так, вы можете вызвать reloadData или reloadDataForRowIndexes:columnIndexes: для вашего табличного представления в методе, который обрабатывает ответ, чтобы обновить табличное представление после загрузки данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...