Источники данных NSComboBox и reloadData - PullRequest
4 голосов
/ 20 августа 2011

У меня в приложении есть NSCombobox и для него настроен источник данных.

 IBOutlet NSComboBox *comboBox;

Я также указываю в какой-то момент в моей программе:

[comboBox reloadData];

Я бы подумал, что после этого вызова я получу вызовы этих методов, если я не забуду установить источник данных поля со списком (что я и сделал):

- (id)comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(NSInteger)index
- (NSInteger)numberOfItemsInComboBox:(NSComboBox *)aComboBox

Но я не знаю. Разве это не так, как работают поля со списком?

1 Ответ

3 голосов
/ 20 августа 2011

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

Если методы источника данных вообще не вызываются - ни до, ни после вызова reloadData - убедитесь, что поле со списком сконфигурировано для использования источника данных. В поле ввода в поле со списком выберите Использовать источник данных или позвоните [comboBox setUsesDataSource:YES] в коде.

...