Как использовать событие textChange в SwiftUI TextField Component? - PullRequest
0 голосов
/ 17 апреля 2020

Поскольку мы использовали UITextField в Swift

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

А TextField в SwiftUI обеспечивает

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

Changed, будет напечатано при начале редактирования и Commited напечатает при нажатии клавиши возврата.

Теперь я набираю AB C

Так что теперь вопрос

, если я хочу вызвать любую функцию или обработать на прессе A , какие шаги мне нужно сделать для этого?

1 Ответ

0 голосов
/ 17 апреля 2020

Вы можете использовать это:

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)")
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...