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

Posted

技术标签:

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

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

场景如下:

-用户在 TextField 中输入文本。

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

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

【问题讨论】:

请检查这是否有帮助***.com/questions/56550881/… 【参考方案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))
    

【讨论】:

以上是关于检测用户何时停止/暂停在 TextField 中写入 - SwiftUI的主要内容,如果未能解决你的问题,请参考以下文章

如何检测何时点击 TextField? (MacOS 上的 SwiftUI)

UISearchBar 检测用户何时停止快速输入

jQuery scroll() 检测用户何时停止滚动

UICollectionView:如何检测滚动何时停止

Android:检测 ScrollView 何时停止滚动

检测窗口何时停止移动?