Обнаружение, когда пользователь остановил / приостановил запись в TextField - SwiftUI
Я хочу получить уведомление, когда пользователь закончит ввод текста в TextField в SwiftUI.
Сенарио в следующем:
-пользователь вводит текст в текстовое поле.
-когда пользователь написал строку длиной более 3 символов и приостановил или закончил запись, я хочу, чтобы приложение получило уведомление, чтобы я мог работать с этой строкой.
попробовал.onEditingChanged, но он будет вызывать действие при каждом изменении, а не только тогда, когда пользователь закончил редактирование.
1 ответ
Попробуйте приведенный ниже код, таким образом вы можете проверить значение в реальном времени, введенное пользователем в текстовое поле.
struct MyFormView: View {
@State var typingText: String = "" {
willSet {
if typingText.count == 3 {
print("User now entering 4th character")
}
}
didSet {
print(typingText)
}
}
var body: some View {
let bindText = Binding<String>(
get:{self.typingText},
set:{self.typingText = $0})
return VStack(alignment: .leading, spacing: 5) {
Text("Name")
TextField("Enter Name", text: bindText)
.keyboardType(.default)
.frame(height: 44)
}.padding(.all, CGFloat(10))
}
}