1

我想在用户完成在 SwiftUI 的 TextField 中写入文本时收到通知。

中的情景如下:

- 用户在 TextField 中输入文本。

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

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

4

1 回答 1

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))
    }
}
于 2020-07-13T06:32:44.817 回答