Correzione automatica — essenza, meccanismi e UITextAutocorrectionType

Autore: IT Sectr Pubblicato: 2026-07-08 Tempo di lettura: 7 min

La correzione automatica è un meccanismo integrato di iOS che corregge automaticamente gli errori ortografici durante l'inserimento del testo. UIKit gestisce il comportamento della correzione automatica attraverso la proprietà autocorrectionType nel protocollo UITextInputTraits, supportando tre modalità: predefinita, attivata e disattivata. Secondo Apple Text Programming Guide (2025), la correzione automatica analizza il testo inserito in base al dizionario di sistema e all'apprendimento automatico sul dispositivo. Utilizzare autocorrectionType per ogni campo di testo individualmente — questo consente di adattare il comportamento alla specificità dei dati inseriti.

Punti chiave

  • La correzione automatica è un meccanismo di sistema iOS per correggere automaticamente gli errori ortografici durante la digitazione
  • UITextAutocorrectionType supporta tre modalità: .default, .yes e .no per ogni campo individualmente
  • Il dizionario di correzione automatica è costruito sul dizionario di sistema iOS e su un modello linguistico addestrato sul dispositivo
  • Safe Keyboard è una tastiera protetta che disattiva la correzione automatica per i campi password e dati finanziari
  • Localizzazione — la correzione automatica funziona per tutte le lingue della tastiera supportate, inclusi layout aggiuntivi

Cos'è la correzione automatica?

La correzione automatica è una funzionalità del sistema operativo iOS che sostituisce automaticamente le parole digitate con alternative presumibilmente corrette quando viene rilevato un errore ortografico. Il meccanismo funziona a livello dei campi di testo UIKit ed è disponibile in tutte le applicazioni che utilizzano gli elementi di input standard UITextField e UITextView.

Al centro della correzione automatica c'è un modello linguistico addestrato su milioni di esempi di testo per ogni lingua supportata. Il modello funziona interamente sul dispositivo (on-device), garantendo la riservatezza dei dati inseriti — il testo non viene inviato ai server Apple per l'analisi. Con ogni aggiornamento di iOS, il modello viene perfezionato e ampliato con nuove parole e regole.

La correzione automatica viene attivata automaticamente per tutti i campi di testo, a meno che lo sviluppatore non la disattivi esplicitamente. L'utente può disattivare completamente la correzione automatica nelle impostazioni di sistema (Impostazioni > Generali > Tastiera > Correzione automatica), ma lo sviluppatore può anche controllare questo comportamento per singoli campi attraverso la proprietà autocorrectionType.

Secondo la sessione WWDC 2023 numero 204, Apple ha presentato un modello migliorato di correzione automatica basato su Transformer, che considera il contesto dell'intera frase e non solo l'ultima parola. Ciò ha ridotto le correzioni errate del 30% rispetto al modello precedente basato su n-grammi.

Modalità di correzione automatica in iOS

UITextAutocorrectionType è un'enumerazione con tre valori che determinano il comportamento della correzione automatica per un campo di testo specifico. Ogni valore viene impostato tramite la proprietà autocorrectionType, accessibile in Interface Builder e nel codice durante la creazione del campo.

Modalità .default

Il valore .default significa che il campo eredita l'impostazione globale di correzione automatica dai parametri di sistema della tastiera. Questa modalità è consigliata per la maggior parte dei campi di testo poiché rispetta la scelta dell'utente. Se l'utente ha disattivato la correzione automatica nelle impostazioni, un campo con .default non la utilizzerà.

Modalità .yes

Il valore .yes attiva forzatamente la correzione automatica per il campo indipendentemente dall'impostazione di sistema. Questa modalità dovrebbe essere utilizzata solo per i campi in cui la precisione ortografica è critica — ad esempio, negli editor di testo, nei campi di inserimento di note o messaggi. Apple raccomanda di usare .yes con cautela, poiché l'attivazione forzata potrebbe contraddire le aspettative dell'utente.

Modalità .no

Il valore .no disattiva la correzione automatica per un campo specifico. Questa modalità è obbligatoria per i campi password (inserimento di testo sicuro), indirizzi email, codici di verifica e query di ricerca. In questi campi, la correzione automatica non solo è inutile, ma dannosa — può sostituire dati inseriti correttamente con alternative errate.

ModalitàValoreRaccomandazione
.defaultEredita l'impostazione di sistemaLa maggior parte dei campi di input
.yesForzatamente attivataEditor di testo, note
.noForzatamente disattivataPassword, email, ricerca, codici

Modello linguistico e dizionario

Il modello linguistico della correzione automatica di iOS utilizza una combinazione di un dizionario statico e un modello addestrato dinamicamente. Il dizionario di sistema contiene le parole più utilizzate per ogni lingua, mentre il modello linguistico basato su Transformer analizza il contesto e la probabilità di sostituzione. Il modello viene addestrato sul dispositivo in base ai testi inseriti dall'utente.

Gli utenti possono aggiungere parole a un dizionario personale attraverso le impostazioni della tastiera (Impostazioni > Generali > Tastiera > Sostituzione testo). Le parole aggiunte vengono salvate in iCloud e sincronizzate tra i dispositivi utilizzando lo stesso Apple ID. Il sistema non correggerà le parole del dizionario personale, il che è comodo per nomi, marchi e termini tecnici.

Per i domini specializzati — medici, legali, tecnici — il dizionario standard potrebbe contenere termini insufficienti. In tali applicazioni, si consiglia di disattivare la correzione automatica per i campi pertinenti o di utilizzare la sostituzione personalizzata del testo tramite il metodo UIResponder .replacementDictionary per iOS 17+.

Secondo Apple Machine Learning Research (2024), il nuovo modello di correzione automatica basato sull'architettura Transformer elabora fino a 10 token di contesto (contro 3 token nel modello precedente), consentendo di determinare con maggiore precisione l'intenzione dell'utente. Il modello considera non solo l'ortografia, ma anche la struttura grammaticale della frase.

Safe Keyboard e dati riservati

Safe Keyboard è una modalità di input protetta che si attiva automaticamente per i campi con secureTextEntry = true. In questa modalità, la correzione automatica, la capitalizzazione automatica e l'input predittivo vengono disattivati dal sistema indipendentemente dai valori impostati di autocorrectionType. Il sistema blocca anche l'accesso al dizionario utente e alle sostituzioni di testo.

Safe Keyboard previene la perdita di dati inseriti attraverso i meccanismi di correzione automatica. Se la correzione automatica fosse attiva per un campo password, il sistema potrebbe salvare la password inserita nel dizionario utente o inviarla ai server Apple per l'addestramento del modello. Safe Keyboard garantisce che i dati riservati non lascino l'applicazione.

Per le applicazioni finanziarie, Safe Keyboard si attiva automaticamente solo per i campi con secureTextEntry. Per i campi di inserimento di numeri di carta, date di scadenza e codici CVV, lo sviluppatore deve disattivare manualmente la correzione automatica impostando autocorrectionType = .no e keyboardType = .numberPad o .phonePad.

A partire da iOS 17, Safe Keyboard supporta la protezione dall'intercettazione tramite tastiere di terze parti. Se l'utente ha installato una tastiera dall'App Store, quando secureTextEntry viene attivato, la tastiera di sistema sostituisce automaticamente quella di terze parti, anche se era stata selezionata come predefinita. Ciò garantisce che le password vengano inserite solo tramite la tastiera di sistema sicura.

Configurazione tramite codice Swift

La gestione della correzione automatica in Swift viene eseguita tramite la proprietà autocorrectionType degli oggetti UITextField e UITextView. La proprietà è disponibile sia in lettura che in scrittura e può essere modificata dinamicamente in base al contesto di input. La configurazione tramite Interface Builder è disponibile nell'ispettore degli attributi con il nome Correction.

swift
let textField = UITextField()
textField.autocorrectionType = .no

Per un modulo di accesso, la correzione automatica dovrebbe essere disattivata per il campo password e attivata per impostazione predefinita per il campo di accesso. Il campo email è anche consigliato senza correzione automatica, poiché il simbolo @ e i nomi di dominio vengono spesso sostituiti in modo errato. Per il campo nome utente, la correzione automatica può essere attivata se il nome utente è una parola leggibile.

swift
class RegistrationViewController: UIViewController {

    @IBOutlet var nameField: UITextField!
    @IBOutlet var emailField: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()
        nameField.autocorrectionType = .yes
        emailField.autocorrectionType = .no
        emailField.textContentType = .emailAddress
    }
}

Per UITextView, la configurazione della correzione automatica viene eseguita in modo simile. Ciò è particolarmente importante per i campi di input su più righe per commenti, messaggi e note, dove la correzione automatica apporta il maggior beneficio ma può anche creare disagi durante l'inserimento di termini tecnici o codice.

swift
let textView = UITextView()
textView.autocorrectionType = .default

Per modifiche dinamiche della correzione automatica, utilizzare il delegato UITextFieldDelegate. Il metodo textFieldDidBeginEditing viene chiamato quando un campo viene attivato e in esso è possibile modificare autocorrectionType in base al contesto corrente o al ruolo del campo, che può cambiare durante il funzionamento dell'applicazione.

Quando disattivare la correzione automatica

La correzione automatica dovrebbe essere disattivata nei campi in cui la precisione dei dati inseriti è critica e il sistema non può determinare correttamente l'intenzione dell'utente. Casi principali: campi password e dati sicuri, campi di inserimento indirizzi email, stringhe di ricerca, campi di inserimento codice e codice di programmazione, nonché campi con formati di dati non standard.

Per le barre di ricerca (UISearchBar), la correzione automatica è disattivata per impostazione predefinita, il che corrisponde alle aspettative degli utenti. Durante la ricerca, l'utente può inserire parole incomplete, termini tecnici o query in diverse lingue e la correzione automatica sarebbe solo d'ostacolo. Analogamente per i campi di inserimento URL e nomi di dominio.

Nei messaggeri e applicazioni di comunicazione, la correzione automatica è solitamente attivata, ma per l'inserimento di slang, abbreviazioni e vocabolario informale, può creare disagi. In tali casi, l'utente può disattivare la correzione automatica tramite le impostazioni della tastiera, oppure lo sviluppatore può fornire un interruttore direttamente nell'interfaccia dell'applicazione.

Secondo le Human Interface Guidelines di Apple, la correzione automatica dovrebbe essere disattivata per qualsiasi campo in cui i dati inseriti potrebbero non essere trovati nel dizionario di sistema: numeri d'ordine, codici di prenotazione, identificatori, IMEI, indirizzi MAC. Se il campo accetta dati alfanumerici in un formato non standard — disattivare la correzione automatica.

Domande frequenti

Come disattivare completamente la correzione automatica in tutta l'applicazione?

Non esiste una disattivazione globale della correzione automatica per l'intera applicazione. È necessario impostare autocorrectionType = .no per ogni campo di testo individualmente o creare una sottoclasse di UITextField con un valore sovrascritto.

Perché la correzione automatica non funziona sul simulatore?

Il simulatore utilizza un modello di input semplificato dalla tastiera del Mac. Il modello linguistico di correzione automatica non è attivo sul simulatore — utilizzare un dispositivo reale per i test.

Come aggiungere una parola al dizionario utente?

L'utente può aggiungere una parola tramite Impostazioni > Generali > Tastiera > Sostituzione testo. Non esiste un'API per consentire all'applicazione di aggiungere parole programmaticamente al dizionario di correzione automatica del sistema.

L'impostazione di keyboardType disattiva la correzione automatica?

No, keyboardType non influisce sulla correzione automatica. Anche per la tastiera .numberPad, la correzione automatica può essere attiva se non viene disattivata esplicitamente tramite autocorrectionType.

La correzione automatica funziona per tastiere di terze parti?

Le tastiere di terze parti hanno propri meccanismi di correzione automatica e non utilizzano il UITextAutocorrectionType di sistema. Il comportamento dipende dall'implementazione della tastiera specifica.

Riepilogo

  • La correzione automatica è una funzionalità di sistema iOS per correggere automaticamente gli errori ortografici nei campi di testo
  • Tre modalità di UITextAutocorrectionType: .default (eredita impostazioni), .yes (attivata), .no (disattivata)
  • Modello linguistico Transformer elabora fino a 10 token di contesto e funziona interamente sul dispositivo
  • Safe Keyboard disattiva automaticamente la correzione automatica per i campi con secureTextEntry = true
  • La correzione automatica è inutile per campi password, email, codici, ricerca e formati di dati non standard
  • La configurazione viene eseguita tramite la proprietà autocorrectionType per ogni campo individualmente
  • Raccomandazione — testare il comportamento della correzione automatica su un dispositivo reale con un modello linguistico attivo

Svilupperemo un'applicazione mobile chiavi in mano

IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.

Discuti il progetto

Leggi anche