检测用户何时在TextField-SwiftUI中停止/暂停写入

检测用户何时在TextField-SwiftUI中停止/暂停写入,swiftui,swiftui-text,Swiftui,Swiftui Text,我想在用户在SwiftUI的文本字段中完成文本写入后得到通知 senario的报告如下: -用户在文本字段中输入文本 -当用户写了一个长度超过3个字符的字符串并暂停或完成了编写时,我希望应用程序得到通知,以便我可以使用该字符串 已尝试。onEditingChanged,但它将在每次更改时调用操作,而不仅仅是在用户完成编辑时。尝试下面的代码,这样您就可以检查用户在文本字段中输入的实时值 struct MyFormView: View { @State var typingText:

我想在用户在SwiftUI的文本字段中完成文本写入后得到通知

senario的报告如下:

-用户在文本字段中输入文本

-当用户写了一个长度超过3个字符的字符串并暂停或完成了编写时,我希望应用程序得到通知,以便我可以使用该字符串


已尝试。onEditingChanged,但它将在每次更改时调用操作,而不仅仅是在用户完成编辑时。

尝试下面的代码,这样您就可以检查用户在文本字段中输入的实时值

   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))
    }
}
struct MyFormView:View{
@状态变量typingText:String=“”{
意志{
如果键入text.count==3{
打印(“用户现在输入第四个字符”)
}
}
迪塞特{
打印(键入文本)
}
}
var body:一些观点{
让bindText=Binding(
获取:{self.typingText},
集合:{self.typingText=$0})
返回VStack(对齐:。前导,间距:5){
文本(“名称”)
文本字段(“输入名称”,文本:bindText)
.keyboardType(.default)
.框架(高度:44)
}.padding(.all,CGFloat(10))
}
}
请检查这是否有帮助