Обнаружение, когда пользователь остановил / приостановил запись в 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))
    }
}
Другие вопросы по тегам