我想在用户完成在 SwiftUI 的 TextField 中写入文本时收到通知。
中的情景如下:
- 用户在 TextField 中输入文本。
- 当用户编写的字符串长度超过 3 个字符并暂停或完成编写时,我希望应用程序收到通知,以便我可以使用该字符串。
尝试过 .onEditingChanged 但它会在每次更改时调用该操作,而不仅仅是在用户完成编辑时调用。
我想在用户完成在 SwiftUI 的 TextField 中写入文本时收到通知。
中的情景如下:
- 用户在 TextField 中输入文本。
- 当用户编写的字符串长度超过 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))
}
}