Autocorrection — esența, mecanismele și UITextAutocorrectionType

Autor: IT Sectr Publicat: 2026-07-08 Timp de citire: 7 min

Autocorrection este un mecanism încorporat iOS care corectează automat greșelile de ortografie la introducerea textului. UIKit gestionează comportamentul autocorectării prin proprietatea autocorrectionType din protocolul UITextInputTraits, suportând trei moduri: implicit, activat și dezactivat. Conform Apple Text Programming Guide (2025), autocorectarea analizează textul introdus pe baza dicționarului de sistem și a învățării automate pe dispozitiv. Folosiți autocorrectionType pentru fiecare câmp text separat — aceasta permite adaptarea comportamentului la specificul datelor introduse.

Principalele puncte

  • Autocorrection — mecanismul de sistem iOS pentru corectarea automată a greșelilor de ortografie la tastare
  • UITextAutocorrectionType suportă trei moduri: .default, .yes și .no pentru fiecare câmp individual
  • Dicționarul autocorectării se bazează pe dicționarul de sistem iOS și modelul lingvistic antrenat pe dispozitiv
  • Safe Keyboard — tastatura securizată care dezactivează autocorectarea pentru câmpurile de parole și date financiare
  • Localizarea — autocorectarea funcționează pentru toate limbile de tastatură suportate, inclusiv pentru configurații suplimentare

Ce este Autocorrection?

Autocorrection (autocorectarea) este o funcție a sistemului de operare iOS care înlocuiește automat cuvintele introduse cu variante probabil corecte la detectarea unei greșeli de ortografie. Mecanismul funcționează la nivelul câmpurilor de text UIKit și este disponibil în toate aplicațiile care utilizează elementele standard UITextField și UITextView.

La baza autocorectării stă modelul lingvistic antrenat pe milioane de exemple textuale pentru fiecare limbă suportată. Modelul funcționează complet pe dispozitiv (on-device), ceea ce garantează confidențialitatea datelor introduse — textul nu este trimis pe serverele Apple pentru analiză. Cu fiecare actualizare iOS, modelul este rafinat și extins cu noi cuvinte și reguli.

Autocorectarea se activează automat pentru toate câmpurile de text, dacă dezvoltatorul nu a dezactivat-o explicit. Utilizatorul poate dezactiva complet autocorectarea în setările sistemului (Setări > General > Tastatură > Autocorectare), dar dezvoltatorul poate gestiona acest comportament pentru câmpuri individuale prin proprietatea autocorrectionType.

Conform WWDC 2023 Session 204, Apple a prezentat un model lingvistic de autocorectare îmbunătățit bazat pe Transformer, care ia în considerare contextul întregii propoziții, nu doar ultimul cuvânt. Aceasta a redus numărul de corecturi false cu 30% față de modelul anterior bazat pe n-grame.

Modurile autocorectării în iOS

UITextAutocorrectionType este o enumerare cu trei valori care determină comportamentul autocorectării pentru un anumit câmp text. Fiecare valoare este setată prin proprietatea autocorrectionType, disponibilă în Interface Builder și în cod la crearea câmpului.

Modul .default

Valoarea .default înseamnă că câmpul moștenește setarea globală a autocorectării din parametrii de sistem ai tastaturii. Acest mod este recomandat pentru majoritatea câmpurilor text, deoarece respectă alegerea utilizatorului. Dacă utilizatorul a dezactivat autocorectarea în setări, câmpul cu .default nu o va folosi nici el.

Modul .yes

Valoarea .yes activează forțat autocorectarea pentru câmp, indiferent de setarea de sistem. Acest mod trebuie folosit doar pentru câmpurile unde acuratețea ortografică este critică — de exemplu, în editori de text, câmpuri de note sau mesaje. Apple recomandă aplicarea .yes cu prudență, deoarece activarea forțată poate contrazice așteptările utilizatorului.

Modul .no

Valoarea .no dezactivează autocorectarea pentru un anumit câmp. Acest mod este obligatoriu pentru câmpurile de parole (secure text entry), adrese de email, coduri de confirmare și interogări de căutare. În aceste câmpuri, autocorectarea nu este doar inutilă, ci și dăunătoare — poate înlocui datele introduse corect cu unele eronate.

ModValoareRecomandare
.defaultMoștenește setarea de sistemMajoritatea câmpurilor de intrare
.yesActivat forțatEditori de text, note
.noDezactivat forțatParole, email, căutare, coduri

Modelul lingvistic și dicționarul

Modelul lingvistic al autocorectării iOS utilizează o combinație între un dicționar static și un model învățat dinamic. Dicționarul de sistem conține cele mai frecvente cuvinte pentru fiecare limbă, iar modelul lingvistic bazat pe Transformer analizează contextul și probabilitatea de înlocuire. Modelul se antrenează pe dispozitiv pe baza textelor introduse de utilizator.

Utilizatorul poate adăuga cuvinte în dicționarul personal prin setările tastaturii (Setări > General > Tastatură > Înlocuire text). Cuvintele adăugate sunt salvate în iCloud și sincronizate între dispozitive prin același Apple ID. Sistemul nu va corecta cuvintele din dicționarul personal, ceea ce este convenabil pentru nume, mărci și termeni tehnici.

Pentru domenii specifice — medicale, juridice, tehnice — dicționarul standard poate să nu conțină suficienți termeni. În astfel de aplicații, se recomandă fie dezactivarea autocorectării pentru câmpurile respective, fie utilizarea înlocuirii de text prin metoda UIResponder .replacementDictionary pentru iOS 17+.

Conform Apple Machine Learning Research (2024), noul model de autocorectare bazat pe arhitectura Transformer procesează până la 10 tokeni de context (față de 3 tokeni în modelul anterior), permițând o determinare mai precisă a intenției utilizatorului. Modelul ia în considerare nu doar ortografia, ci și structura gramaticală a propoziției.

Safe Keyboard și datele confidențiale

Safe Keyboard este un mod de introducere securizat care se activează automat pentru câmpurile cu secureTextEntry = true. În acest mod, autocorectarea, auto-capitalizarea și introducerea predictivă sunt dezactivate de sistem indiferent de valorile setate ale autocorrectionType. Sistemul blochează și accesul la dicționarul personal și la înlocuirile de text.

Safe Keyboard previne scurgerea datelor introduse prin mecanismele de autocorectare. Dacă autocorectarea ar fi activă pentru un câmp de parolă, sistemul ar putea salva parola introdusă în dicționarul personal sau ar putea trimite-o pe serverele Apple pentru antrenarea modelului. Safe Keyboard garantează că datele confidențiale nu părăsesc limitele aplicației.

Pentru aplicațiile financiare, Safe Keyboard se activează automat doar pentru câmpurile cu secureTextEntry. Pentru câmpurile de număr de card, date de expirare și coduri CVV, dezvoltatorul trebuie să dezactiveze manual autocorectarea, setând autocorrectionType = .no și keyboardType = .numberPad sau .phonePad.

Începând cu iOS 17, Safe Keyboard suportă protecția împotriva interceptării prin tastaturi terțe. Dacă utilizatorul a instalat o tastatură din App Store, la activarea secureTextEntry, tastatura de sistem înlocuiește automat tastatura terță, chiar dacă aceasta a fost selectată implicit. Aceasta garantează că parolele sunt introduse doar prin tastatura de sistem securizată.

Configurarea prin cod Swift

Gestionarea autocorectării în Swift se realizează prin proprietatea autocorrectionType a obiectelor UITextField și UITextView. Proprietatea este disponibilă atât pentru citire, cât și pentru scriere și poate fi modificată dinamic în funcție de contextul introducerii. Configurarea prin Interface Builder este disponibilă în inspectorul de atribute sub numele Correction.

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

Pentru formularul de autentificare, autocorectarea trebuie dezactivată pentru câmpul de parolă și activată implicit pentru câmpul de login. Câmpul de email este, de asemenea, recomandat să rămână fără autocorectare, deoarece simbolul @ și numele de domenii sunt adesea înlocuite incorect. Pentru câmpul username, autocorectarea poate fi activată dacă username-ul este un cuvânt lizibil.

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
    }
}

Pentru UITextView configurarea autocorectării se face similar. Acest lucru este deosebit de important pentru câmpurile multiline de comentarii, mesaje și note, unde autocorectarea aduce cel mai mare beneficiu, dar poate crea și inconveniențe la introducerea termenilor tehnici sau a codului.

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

Pentru modificarea dinamică a autocorectării, utilizați delegatul UITextFieldDelegate. Metoda textFieldDidBeginEditing este apelată la activarea câmpului și în ea se poate modifica autocorrectionType în funcție de contextul curent sau de rolul câmpului, care se poate schimba în timpul funcționării aplicației.

Când să dezactivăm autocorectarea

Autocorectarea trebuie dezactivată în câmpurile unde acuratețea datelor introduse este critică și sistemul nu poate determina corect intenția utilizatorului. Cazurile principale: câmpuri de parole și date securizate, câmpuri de adrese email, bare de căutare, câmpuri de cod și cod de programare, precum și câmpuri cu formate de date non-standard.

Pentru barele de căutare (UISearchBar) autocorectarea este dezactivată implicit, ceea ce corespunde așteptărilor utilizatorilor. La căutare, utilizatorul poate introduce cuvinte incomplete, termeni tehnici sau interogări în diferite limbi, iar autocorectarea ar fi doar o piedică. Similar pentru câmpurile de introducere URL și nume de domenii.

În mesagerii și aplicațiile de comunicare, autocorectarea este de obicei activată, dar la introducerea argoului, abrevierilor și a lexicului informal poate crea inconveniențe. În astfel de cazuri, utilizatorul poate dezactiva autocorectarea prin setările tastaturii, iar dezvoltatorul poate oferi un comutator direct în interfața aplicației.

Conform Human Interface Guidelines Apple, autocorectarea trebuie dezactivată pentru orice câmp în care datele introduse ar putea să nu se găsească în dicționarul de sistem: numere de comandă, coduri de rezervare, identificatori, IMEI, adrese MAC. Dacă câmpul acceptă date alfanumerice într-un format non-standard — dezactivați autocorectarea.

Întrebări frecvente

Cum se dezactivează complet autocorectarea în întreaga aplicație?

Nu există o dezactivare globală a autocorectării pentru o aplicație. Trebuie să setați autocorrectionType = .no pentru fiecare câmp text în parte sau să creați o subclasă UITextField cu valoarea suprascrisă.

De ce nu funcționează autocorectarea pe simulator?

Simulatorul utilizează un model simplificat de introducere de la tastatura Mac. Modelul lingvistic al autocorectării nu este activ în simulator — pentru testare folosiți un dispozitiv real.

Cum se adaugă un cuvânt în dicționarul personal?

Utilizatorul poate adăuga un cuvânt prin Setări > General > Tastatură > Înlocuire text. Nu există API pentru adăugarea programatică a cuvintelor în dicționarul de sistem al autocorectării pentru aplicații.

Dezactivează setarea keyboardType autocorectarea?

Nu, keyboardType nu influențează autocorectarea. Chiar și pentru tastatura .numberPad, autocorectarea poate fi activă dacă nu a fost dezactivată explicit prin autocorrectionType.

Funcționează autocorectarea pentru tastaturi terțe?

Tastaturile terțe au propriile mecanisme de autocorectare și nu folosesc UITextAutocorrectionType de sistem. Comportamentul depinde de implementarea tastaturii specifice.

Rezumat

  • Autocorrection — funcția de sistem iOS pentru corectarea automată a greșelilor de ortografie în câmpurile text
  • Trei moduri UITextAutocorrectionType: .default (moștenește setările), .yes (activată), .no (dezactivată)
  • Modelul lingvistic Transformer procesează până la 10 tokeni de context și funcționează complet pe dispozitiv
  • Safe Keyboard dezactivează automat autocorectarea pentru câmpurile cu secureTextEntry = true
  • Autocorectarea este inutilă pentru câmpurile de parole, email, coduri, căutare și formate de date non-standard
  • Configurarea se realizează prin proprietatea autocorrectionType pentru fiecare câmp individual
  • Recomandare — testați comportamentul autocorectării pe un dispozitiv real cu model lingvistic activ

Vom dezvolta o aplicație mobilă la cheie

IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.

Discutați proiectul

Citiți și