【问题标题】:Detect when a user stopped / paused writing in TextField - SwiftUI检测用户何时停止/暂停在 TextField 中写入 - SwiftUI
【发布时间】:2020-07-12 12:55:02
【问题描述】:

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

场景如下:

-用户在 TextField 中输入文本。

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

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

【问题讨论】:

标签: swiftui swiftui-text


【解决方案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))
    }
}

【讨论】:

    猜你喜欢
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 2021-05-17
    • 2012-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多