TextField принимает ограниченные символы SwiftUi - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть одно текстовое поле, и я использую его для ввода электронной почты, и когда пользователь нажимает кнопку отправки, электронное письмо удаляется из того же текстового поля, и его заполнитель изменяется для ввода PIN-кода. Поэтому, когда пользователь вводит пин-код, я бы хотел, чтобы текстовое поле было ограничено до 6 символов. Это возможно? Если да, пожалуйста, помогите мне. Я новичок в SwiftUI.

TextField(placeholder, text: $text)

Значение $text меняется в зависимости от состояния электронной почты или пин-кода

1 Ответ

1 голос
/ 15 апреля 2020

Вы можете сделать это, используя Publisher и onReceive.

import SwiftUI

struct ContentView: View {
    @State var text:String = ""
    var body: some View {
        VStack{
            TextField("Enter text", text: $text)
                .onReceive(text.publisher.last()) { (output) in
                    if self.text.count>6{ //set count as you want
                        self.text = String(self.text.dropLast())
                    }
            }
        }
    }
}
...