AppStorage - utilizzo in macOS con SwiftUI

@AppStorage è una proprietà che legge e scrive valori da UserDefaults. In questo esempio salviamo il nome di una persona nella chiave “persona” in UserDefaults.
Quando l’app viene riavviata, il nome della persona salvato verrà mostrato nella label di testo. Inserisci un nome nel campo di testo e poi clicca su “Salva nome” per salvare un nuovo nome nella chiave “persona” in UserDefaults.

Inizializziamo una variabile di stato nome per memorizzare il nome inserito:

@State private var nome = ""

Inizializziamo una chiave persona in AppStorage:

@AppStorage("persona") var persona = ""

Nella View, all'interno di un VStack, inseriamo il campo di testo:


    TextField("Inserisci nome", text: $nome)
        .multilineTextAlignment(.center)
        .frame(maxWidth: 200)

Poi aggiungiamo il pulsante per salvare, e visualizziamo il testo


    Button("Salva nome") {
            persona = nome
            }
    Text("Persona salvata: \(persona)")

Di seguito il codice completo:

            
import SwiftUI

struct ContentView: View {

    @State private var nome = ""
    @AppStorage("persona") var persona = ""

    var body: some View {
        VStack(spacing: 20) {
            TextField("Inserisci nome", text: $nome)
                .multilineTextAlignment(.center)
                .frame(maxWidth: 200)
            Button("Salva nome") {
                persona = nome
            }
            Text("Persona salvata: \(persona)")
        }
        .frame(width: 400, height: 100)
        .padding()
    }
}
            
        

Potete trovare il codice completo su Github