Как заставить NSSearchField отправлять действие при автозаполнении?

Этот вопрос кажется простым, но я пробовал все, что мог придумать, и гуглил часами.

У меня есть NSSearchField, который выполняет автозаполнение, в основном копируя пример кода Apple SearchField . Я отключил «Отправляет всю строку поиска» в IB, потому что не хочу выполнять поиск, пока пользователь не завершит ввод текста, и не хочу выполнять многократный поиск (это дорого).

Поскольку пользователь вводит в поле, когда он нажимает клавишу ввода, указывая, что они принимают текущее автозаполнение, я хочу, чтобы действие для NSSearchField сработало. Вместо этого кажется, что он просто заполняет автозаполнение, а затем пользователь должен нажать клавишу ввода второй раз, чтобы действие сработало. В принципе, подумайте о том, чтобы начать вводить URL-адрес в Safari, он автозаполняется, а нажатие Enter запускает загрузку страницы (запуск действия). Им не нужно нажимать ввод второй раз, чтобы начать загрузку страницы.

То, что я пробовал безуспешно:

  • control: textView: commandSelector :, ищу insertNewline :. Он не запускается, когда они нажимают Enter для завершения автозаполнения
  • Переопределение controlTextDidEndEditing :. То же, что и выше

Есть идеи? Спасибо!

7
задан Marek H 11 November 2018 в 17:05
поделиться