У меня есть NSComboBox с источником данных, и он отлично работает, когда вы нажимаете на треугольник и выбираете один из элементов, нажимая на него. Тем не менее, я также хочу, чтобы он разрешил пользователю вводить поле, чтобы выбрать имя, используя автоматическое завершение. В настоящее время, когда пользователь вводит тип, я хочу выбрать автозаполнение, но не выбираю.NSComboBox Delegation
Моя мысль заключалась в том, что я должен реализовать метод делегирования, чтобы, когда пользователь вводит в поле со списком и имя объекта выбора автозаполнение, оставляя combobox, будет запускать этот метод, чтобы затем выбрать элемент с тем же именем из pop .
Я реализовал этот метод делегирования:
- (BOOL)control:(NSControl *)control textShouldEndEditing:(NSText *)fieldEditor {
NSString *tempString = [outletPerformanceVenue stringValue];
NSLog(@"New Value = %@",tempString);
[outletPerformanceVenue selectItemWithObjectValue:tempString];
return TRUE;
}
Однако, я получил следующее сообщение об ошибке компилятора:
*** -[NSComboBoxCell selectItemWithObjectValue:] should not be called when usesDataSource is set to YES
кажется довольно прямо вперед, но оставляет мне интересно ... что было бы лучше способ выбора элемента? Должен ли я определить индекс записи в массиве данных, который содержит это имя, а затем выбрать элемент со списком с использованием того же индекса? Или есть более прямой путь?
* EDIT *
более простой и прямой вопрос может быть:
Если пользователь вводит (а не выбирает из выпадающего списка) имя элемента в в поле со списком. Как я могу получить индекс этого элемента из поля со списком при использовании источника данных?
Чтобы добавить оскорбление раны, документация Apple, говорит о том, что selectItemWithObjectValue: должны работать с внутренними и внешними источниками данных ... на здесь:
Неужели вам когда-нибудь удавалось это выяснить? – Kyle