#objective-c #macos #cocoa-bindings
#objective-c #macos #cocoa-привязки
Вопрос:
У меня есть NSComboBox с отдельным классом, который соответствует источнику данных NSComboBox и делегату.
Если пользователь вводит текст в поле со списком, который не соответствует ни одному из элементов во всплывающем списке, как мне получить уведомление о том, что пользователь что-то ввел, а также прочитать введенное пользователем значение?
На данный момент я внедряю методы делегирования:-
-(void)comboBoxSelectionDidChange:(NSNotification *)notification
-(void)comboBoxWillDismiss:(NSNotification *)notification
Однако они отображаются только для получения уведомления, когда пользователь выбрал элемент из всплывающего окна, а не когда пользователь вводит что-то еще и прекращает редактирование
Ответ №1:
Поскольку NSComboBox
это подкласс NSTextField
, и, следовательно NSControl
, вы также можете использовать NSControlTextEditingDelegate
методы, такие как control:textShouldEndEditing:
, чтобы повлиять на поведение вашего поля со списком.
Комментарии:
1. Спасибо, Джош, именно то, что я искал. Я думал о NSTextFieldDelegate, но не подумал заглянуть дальше назад.