【发布时间】:2020-07-12 12:55:02
【问题描述】:
我想在用户在 SwiftUI 的 TextField 中写完文本时收到通知。
场景如下:
-用户在 TextField 中输入文本。
-当用户编写的字符串长度超过 3 个字符并暂停或完成写入时,我希望应用程序收到通知,以便我可以使用该字符串。
尝试过 .onEditingChanged 但它会在每次更改时调用该操作,而不仅仅是在用户完成编辑时调用。
【问题讨论】:
标签: swiftui swiftui-text
我想在用户在 SwiftUI 的 TextField 中写完文本时收到通知。
场景如下:
-用户在 TextField 中输入文本。
-当用户编写的字符串长度超过 3 个字符并暂停或完成写入时,我希望应用程序收到通知,以便我可以使用该字符串。
尝试过 .onEditingChanged 但它会在每次更改时调用该操作,而不仅仅是在用户完成编辑时调用。
【问题讨论】:
标签: swiftui swiftui-text
试试下面的代码,这样你可以检查用户在文本字段中输入的实时值。
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))
}
}
【讨论】: