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())
}
}
}
}
}