如何在 SwiftUI TextField 组件中使用 textChange 事件?

Pan*_*ala 2 textfield uitextfield ios swift swiftui

正如我们在 Swift 中使用 UITextField

textField.addTarget(self, action: #selector(textFieldDidChange(_:)), for: .editingChanged)

和 SwiftUI 中的 TextField 提供

TextField("", text: $input, onEditingChanged: { changed in  
        print("Changed")  
        self.output = "You are typing: " + self.input  
      }, onCommit: {  
        print("Commited")  
        self.output = "You typed: " + self.input  
      })
Run Code Online (Sandbox Code Playgroud)

Changed将在开始编辑Commited时打印,并在按下返回键时打印。

现在我正在输入ABC

所以现在的问题是

如果我想在按下A 时调用任何函数或进程,我需要为此做哪些步骤?

wor*_*dog 5

你可以使用这个:

import SwiftUI

struct ContentView: View {

@State var txt = ""

var body: some View {
    TextField("Enter txt", text: Binding<String>(
        get: { self.txt },
        set: {
            self.txt = $0
            self.callMe(with: $0)
        }))
        .padding(20)
}

func callMe(with tx: String) {
    print("---> as you type \(tx)")
}
}
Run Code Online (Sandbox Code Playgroud)