SwiftUI: How to observe a TextField value

Ronak Patel
Aug 19, 2022

TextField : A control that displays an editable text interface.

Multiple ways to observe the SwiftUI TextField value

  1. Using Closure
  2. Using onChange modifier
  3. Using Publisher(Combine)
import SwiftUI
import Combine
struct ContentView: View { @State private var Text1 = ""
@State private var Text2 = ""
@ObservedObject var viewModel = ObserveTextFieldValue()
var body: some View { //MARK: Using Closure
TextField("Enter text1", text: $Text1){ editing in
print(editing)
}onCommit: {
print("Committed")
}
//MARK: Using .onChange Modifier
TextField("Enter text2", text: $Text2).onChange(of: Text2){
text in
print(text)
}
//MARK: Using Viewmodel and Publisher(Combine)
TextField("Enter text3", text: $viewModel.value)
}}
class
ObserveTextFieldValue: ObservableObject {
@Published var value: String = ""
private var cancellables = Set<AnyCancellable>()
init() {
$value.sink(receiveValue: {val in
print(val)
}).store(in: &cancellables)
}
}

--

--