Можно ли установить ограничение на количество символов в TextField с помощью SwiftUI? - PullRequest
1 голос
/ 20 января 2020

[RESOLVED]

Я использую кодируемую структуру, в которой хранятся значения объектов, полученные из вызова API, поэтому я исправил свой TextField на примере Cenk Belgin, я также удалил дополнительные биты, которые добавил так что если кто-то еще попытается сделать то же самое, у него не будет фрагментов кода из моего приложения, которые не требуются.

TextField("Product Code", text: $item.ProdCode)

    .onReceive(item.ProdCode.publisher.collect()) {

    self.item.ProdCode = String($0.prefix(5))
}

1 Ответ

5 голосов
/ 20 января 2020

Вот один способ, не уверенный, упоминалось ли оно в других приведенных вами примерах:

@State var text = ""

  var body: some View {
    TextField("text", text: $text)
      .onReceive(text.publisher.collect()) {
        self.text = String($0.prefix(5))
    }
  }

text.publisher публикует sh каждого символа по мере его ввода. Соберите их в массив, а затем просто взять префикс.

...