NSComboBox — Получение выбранной информации и NSComboBoxDataSource

StackOverflow https://stackoverflow.com/questions/1712515

Вопрос

Хоть убей, меня постоянно ставят в тупик NSComboBox.

Я создал объект, который соответствует NSComboBoxDataSource протокол и реализован:

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

Я установил экземпляр моего NSComboBox использовать источник данных и установить этот объект в качестве источника.Это прекрасно работает, моя реализация возвращает количество элементов и возвращает NSString стоимость элемента по определенным индексам.

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

Итак, мой объект также соответствует NSComboBoxDelegate и реализовать:

- (void)comboBoxSelectionDidChange:(NSNotification *)notification;

К сожалению, в отличие от NSTableView при выборе объектом уведомления является NSComboBox не объект выбранного элемента.«Хорошо», говорю я себе, я позвоню NSComboBox метод:

- (id)objectValueOfSelectedItem;

Это должно вернуть выбранный элемент, и я смогу продолжить.Однако этот метод следует вызывать ТОЛЬКО тогда, когда usesDataSource установлено на NO, это не мой случай.Предупреждения начинают появляться, когда я использую это.

Итак, мой вопрос в том, как правильно справиться с NSComboBox выборки при использовании источника данных?

Это было полезно?

Решение

Я думаю, ты хочешь индексОфселектедитем вместо objectValueOfSelectedItem.Тогда, поскольку вы являетесь источником данных, вы сможете вызвать свой собственный comboBox:objectValueForItemAtIndex: метод.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top