2017-02-15 20 views
0

Я хочу получить контроль, когда точка ввода покидает поле со списком, чтобы я мог проверить, соответствует ли текст записи в списке combox. Я уже добавил делегат мой взгляд контроллера для других функций COMBOBOX, например:Как получить уведомление, когда точка ввода оставляет NSComboBox

func comboBox(_ aComboBox: NSComboBox, completedString string: String) -> String? 

Следующая функция выглядит то, что я хочу:

func control(_ control: NSControl, textShouldEndEditing fieldEditor: NSText) -> Bool 

My App Code IDE идентифицирует его как в API. Когда я запускаю свой код, он не запускается (у меня есть оператор печати). Я попытался сменить «контроль» на «comboBox» без успеха. Нужно ли мне что-то делать, чтобы вызвать эту функцию?

Update

Как указывал @Mangerlahn, функция должна быть в источнике данных. Я переместил его туда без эффекта. Это было в делегате.

extension TrackDialogViewController: NSComboBoxDataSource { 
... 
func control(_ control: NSControl, textShouldEndEditing fieldEditor: NSText) -> Bool {...} 
... 
} 
+1

Функция управления .. является частью «NSControlTextEditingDelegate» и, следовательно, является частью методов NSComboBoxDelegate. Если вы назначили себя делегатом comboBox, метод должен быть вызван. Однако comboBox (.. completedString ..) является частью NSComboBoxDataSource, который отличается от делегата. Поэтому убедитесь, что вы настроены как делегат comboBox AND datasource. – mangerlahn

ответ

0

Глупая ошибка пользователя. Я потерял RAID-диск и должен был перезагрузиться. XCode перепутался и отобразил два окна для моего проекта. Тот, на который я смотрел, не имел консоли.

 Смежные вопросы

  • Нет связанных вопросов^_^