SwiftUI textfield return key action

VonTobias Stephan

SwiftUI textfield return key action

Ja, unter Swift UI ist alles ein bisschen anders – aber cool! Bei meinen ersten Versuchen haben absolute Kleinigkeiten eine halbe Ewigkeit gedauert. So auch hier. Ein einfach Wunsch! Einfach mal einen Event für Enter abgreifen. Damit Ihre nicht so lange suchen müsst, hier ein einfaches Beispiel wie man mit einem Return in einem TextField reagieren kann. Schliesslich drückt der iPhone bzw. IOS App Nutzer gerne auf Öffnen, anstatt einen Button zu klicken. Also geht kein Weg am Abgreifen eines Returns vorbei. Leg Dir einfach ein Testprojekt an und gib Dir die Zeit um um mit dem Beispiel zu spielen. Der Trick liegt hier im onCommit bzw. für den veränderten Wert des Textfelds onEditingChanged. Hier darfst Du dann eine andere Funktion aufrufen, um Dinge auszuführen.

import SwiftUI

struct ContentView: View {
    @State var output: String = ""
    @State var input: String = ""
    @State var typing = false
    var body: some View {
        VStack {
            if !typing {
                if !output.isEmpty {
                    Text("You typed: \(output)")
                }
            } else if !input.isEmpty {
                Text("You are typing: \(input)")
            }
            TextField("", text: $input, onEditingChanged: {
                self.typing = $0
            }, onCommit: {
                self.output = self.input
            })
            .background(Color.green.opacity(0.2))
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

Über den Autor

Tobias Stephan administrator

Schreibe eine Antwort