Я хочу получить контроль, когда точка ввода покидает поле со списком, чтобы я мог проверить, соответствует ли текст записи в списке 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 {...}
...
}
Функция управления .. является частью «NSControlTextEditingDelegate» и, следовательно, является частью методов NSComboBoxDelegate. Если вы назначили себя делегатом comboBox, метод должен быть вызван. Однако comboBox (.. completedString ..) является частью NSComboBoxDataSource, который отличается от делегата. Поэтому убедитесь, что вы настроены как делегат comboBox AND datasource. – mangerlahn