banner



How To Fill Out Cm-010 For Name Change

How to run some code when state changes using onChange()

Paul Hudson    @twostraws

Updated for Xcode thirteen.ii

SwiftUI lets united states of america attach an onChange() modifier to whatever view, which volition run code of our choosing when some land changes in our program. This is of import, because we tin't always use property observers like didSet with something like @Country.

For case, this volition print proper noun changes as they are typed:

          struct ContentView: View {     @Land private var name = ""      var body: some View {         TextField("Enter your proper name:", text: $proper name)             .textFieldStyle(.roundedBorder)             .onChange(of: name) { newValue in                 print("Proper name changed to \(name)!")             }     } }        

Download this every bit an Xcode project

Important: If yous're using Xcode 12 you demand to utilise RoundedBorderTextFieldStyle() rather than .roundedBorder.

Personally, I adopt to add a custom extension to Bounden then that I attach observing lawmaking direct to the binding rather than to the view – it lets me place the observer side by side to the thing it's observing, rather than having lots of onChange() modifiers attached elsewhere in my view.

So, I would use code similar this:

          extension Binding {     func onChange(_ handler: @escaping (Value) -> Void) -> Bounden<Value> {         Binding(             get: { cocky.wrappedValue },             set: { newValue in                 self.wrappedValue = newValue                 handler(newValue)             }         )     } }  struct ContentView: View {     @Land private var name = ""      var body: some View {         TextField("Enter your name:", text: $name.onChange(nameChanged))             .textFieldStyle(.roundedBorder)     }      func nameChanged(to value: String) {         print("Proper noun changed to \(name)!")     } }        

Download this as an Xcode project

Sponsor Hacking with Swift and attain the earth'south largest Swift community!

Similar solutions…

  • SwiftUI tips and tricks
  • How to use Instruments to contour your SwiftUI code and identify slow layouts
  • What'southward the deviation between @ObservedObject, @Land, and @EnvironmentObject?
  • Building a carte using List
  • Displaying a detail screen with NavigationLink

Source: https://www.hackingwithswift.com/quick-start/swiftui/how-to-run-some-code-when-state-changes-using-onchange

Posted by: millercallynnusers.blogspot.com

0 Response to "How To Fill Out Cm-010 For Name Change"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel