SwiftUI объединяет поиск текста - PullRequest
0 голосов
/ 29 марта 2020

У меня есть бэкэнд API / поиск? Q = New Je, который является списком возврата JSON городов

  • "city": "New Jersey"
  • "city": "Новый Дженни Линд"
  • "город": "Новый Иерусалим"
  • ...

У меня есть класс

final class LocationStore: ObservableObject{
     @Published var List : [LocationModel] = []
     func search(q: String) {
         call backend search API and assign to List
     }

}

и у меня есть поиск TextField в моем представлении.

Как вызвать поиск API и назначить мой список, когда пользователь вводит в поиске TextField. Необходимо отобразить раскрывающийся список после символа типа 3 в TextField

1 Ответ

1 голос
/ 29 марта 2020

Свободная структура того, как вы справляетесь с чем-то вроде этого:

  • Настройте текстовое поле, в котором вы можете наблюдать результат каким-либо образом.
  • Если вы хотите использовать Combine создайте конвейер, который отправляет значение этого поля при каждом изменении, а затем запускает некоторый вывод, когда он соответствует вашей спецификации c (> 3 символа)
  • , когда объединяет конвейер, используйте предоставленное значение, или просто характер триггера, чтобы выполнить любое действие, которое вы имеете в виду.

Пример кода, который почти точно делает это доступным в сети, в Использование комбинации в шаблоне с именем Декларации декларативного пользовательского интерфейса из пользовательского ввода . Это охватывает немного больше. Проект github, в котором размещается Использование Combine, имеет вариант SwiftUI этого также в проекте, если вы предпочитаете видеть его с SwiftUI.

...