TextField принимает ограниченные символы SwiftUi

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

TextField(placeholder, text: $text)

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

1 ответ

Вы можете сделать это, используя 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())
                    }
            }
        }
    }
}
Другие вопросы по тегам