Autocorrection — lényege, mechanizmusai és UITextAutocorrectionType

Szerző: IT Sectr Megjelenés: 2026-07-08 Olvasási idő: 7 perc

Autocorrection egy beépített iOS-mechanizmus, amely automatikusan kijavítja a helyesírási hibákat szövegbevitelkor. Az UIKit az autocorrectionType tulajdonságon keresztül kezeli az automatikus javítás viselkedését a UITextInputTraits protokollban, három módot támogatva: alapértelmezett, bekapcsolt és kikapcsolt. Az Apple Text Programming Guide (2025) szerint az automatikus javítás a bevitt szöveget a rendszerszótár és az eszközön történő gépi tanulás alapján elemzi. Használja az autocorrectionType-ot minden szövegmezőhöz külön-külön — ez lehetővé teszi a viselkedés hozzáigazítását a bevitt adatok sajátosságaihoz.

Főbb pontok

  • Autocorrection — az iOS rendszermechanizmusa a helyesírási hibák automatikus javítására gépelés közben
  • UITextAutocorrectionType három módot támogat: .default, .yes és .no minden mezőhöz egyénileg
  • A szótár az iOS rendszerszótárán és az eszközön betanított nyelvi modellen alapul
  • Safe Keyboard — védett billentyűzet, amely kikapcsolja az automatikus javítást a jelszó- és pénzügyi adatmezőkhöz
  • Lokalizáció — az automatikus javítás az összes támogatott billentyűzetnyelvhez működik, beleértve a kiegészítő elrendezéseket is

Mi az Autocorrection?

Autocorrection (automatikus javítás) az iOS operációs rendszer egyik funkciója, amely automatikusan lecseréli a beírt szavakat feltételezhetően helyes változatokra, amikor helyesírási hibát észlel. A mechanizmus az UIKit szövegmezőinek szintjén működik, és elérhető minden olyan alkalmazásban, amely a szabványos UITextField és UITextView beviteli elemeket használja.

Az automatikus javítás alapja egy nyelvi modell, amely minden támogatott nyelvhez millió szöveges példán van betanítva. A modell teljes mértékben az eszközön (on-device) működik, ami garantálja a bevitt adatok bizalmas kezelését — a szöveg nem kerül az Apple szervereire elemzés céljából. Minden iOS-frissítéssel a modell pontosabbá válik, és új szavakkal és szabályokkal bővül.

Az automatikus javítás automatikusan aktiválódik minden szövegmezőhöz, hacsak a fejlesztő kifejezetten ki nem kapcsolta. A felhasználó teljesen kikapcsolhatja az automatikus javítást a rendszerbeállításokban (Beállítások > Általános > Billentyűzet > Automatikus javítás), de a fejlesztő is kezelheti ezt a viselkedést egyes mezőkhöz az autocorrectionType tulajdonságon keresztül.

A WWDC 2023 Session 204 szerint az Apple egy továbbfejlesztett, Transformer alapú automatikus javítási nyelvi modellt mutatott be, amely a teljes mondat kontextusát veszi figyelembe, nem csak az utolsó szót. Ez lehetővé tette a hamis javítások számának 30%-os csökkentését a korábbi, n-gram alapú modellhez képest.

Az automatikus javítás módjai iOS-ben

UITextAutocorrectionType egy három értékű felsorolás, amely meghatározza az automatikus javítás viselkedését egy adott szövegmezőhöz. Minden érték az autocorrectionType tulajdonságon keresztül állítható be, amely elérhető az Interface Builder-ben és kódban a mező létrehozásakor.

.default mód

A .default érték azt jelenti, hogy a mező örökli az automatikus javítás globális beállítását a billentyűzet rendszerparamétereiből. Ez a mód ajánlott a legtöbb szövegmezőhöz, mivel tiszteletben tartja a felhasználó választását. Ha a felhasználó kikapcsolta az automatikus javítást a beállításokban, a .default mező sem fogja használni.

.yes mód

A .yes érték kényszeríti az automatikus javítás bekapcsolását a mezőhöz, függetlenül a rendszerbeállítástól. Ezt a módot csak olyan mezőknél szabad használni, ahol a helyesírási pontosság kritikus — például szövegszerkesztőkben, jegyzet- vagy üzenetmezőkben. Az Apple óvatosságot javasol a .yes használatánál, mert a kényszerített bekapcsolás ellentmondhat a felhasználó elvárásainak.

.no mód

A .no érték kikapcsolja az automatikus javítást az adott mezőhöz. Ez a mód kötelező a jelszómezőkhöz (secure text entry), e-mail címekhez, megerősítő kódokhoz és keresési lekérdezésekhez. Ezekben a mezőkben az automatikus javítás nemcsak haszontalan, hanem káros is — lecserélheti a helyesen bevitt adatokat hibásakra.

MódÉrtékJavaslat
.defaultÖrökli a rendszerbeállítástA legtöbb beviteli mező
.yesKényszerítve bekapcsolvaSzövegszerkesztők, jegyzetek
.noKényszerítve kikapcsolvaJelszavak, e-mail, keresés, kódok

Nyelvi modell és szótár

Az iOS automatikus javításának nyelvi modellje egy statikus szótár és egy dinamikusan tanuló modell kombinációját használja. A rendszerszótár tartalmazza a leggyakrabban használt szavakat minden nyelvhez, a Transformer alapú nyelvi modell pedig elemzi a kontextust és a csere valószínűségét. A modell a felhasználó által bevitt szövegek alapján tanul az eszközön.

A felhasználó szavakat adhat hozzá a személyes szótárhoz a billentyűzetbeállításokon keresztül (Beállítások > Általános > Billentyűzet > Szövegcsere). A hozzáadott szavak az iCloud-ban tárolódnak és szinkronizálódnak az eszközök között ugyanazon Apple ID-n keresztül. A rendszer nem fogja javítani a személyes szótárban lévő szavakat, ami kényelmes nevek, márkák és műszaki kifejezések esetében.

Speciális területekhez — orvosi, jogi, műszaki — a standard szótár nem tartalmazhat elegendő kifejezést. Az ilyen alkalmazásokban ajánlott vagy kikapcsolni az automatikus javítást az érintett mezőkhöz, vagy egyéni szövegcsere használata az UIResponder .replacementDictionary metódusán keresztül iOS 17+ esetén.

Az Apple Machine Learning Research (2024) szerint a Transformer architektúrán alapuló új automatikus javítási modell akár 10 token kontextust dolgoz fel (szemben az előző modell 3 tokenjével), ami lehetővé teszi a felhasználó szándékának pontosabb meghatározását. A modell nemcsak a helyesírást, hanem a mondat nyelvtani szerkezetét is figyelembe veszi.

Safe Keyboard és bizalmas adatok

Safe Keyboard egy védett beviteli mód, amely automatikusan aktiválódik a secureTextEntry = true mezőkhöz. Ebben a módban az automatikus javítás, az automatikus nagybetűsítés és a prediktív bevitel a rendszer által ki van kapcsolva, függetlenül az autocorrectionType beállított értékeitől. A rendszer blokkolja a hozzáférést a személyes szótárhoz és a szövegcserékhez is.

A Safe Keyboard megakadályozza a bevitt adatok kiszivárgását az automatikus javítás mechanizmusain keresztül. Ha az automatikus javítás aktív lenne egy jelszómezőhöz, a rendszer elmenthetné a beírt jelszót a személyes szótárba, vagy elküldhetné az Apple szervereire a modell betanításához. A Safe Keyboard garantálja, hogy a bizalmas adatok nem hagyják el az alkalmazás határait.

Pénzügyi alkalmazásokhoz a Safe Keyboard csak a secureTextEntry mezőkhöz aktiválódik automatikusan. A kártyaszámok, lejárati dátumok és CVV kódok mezőihez a fejlesztőnek manuálisan kell kikapcsolnia az automatikus javítást az autocorrectionType = .no és a keyboardType = .numberPad vagy .phonePad beállításával.

Az iOS 17-től kezdve a Safe Keyboard támogatja a harmadik féltől származó billentyűzetek általi elfogás elleni védelmet. Ha a felhasználó billentyűzetet telepített az App Store-ból, a secureTextEntry aktiválásakor a rendszerbillentyűzet automatikusan lecseréli a harmadik féltől származó billentyűzetet, még akkor is, ha az alapértelmezettként volt kiválasztva. Ez garantálja, hogy a jelszavak csak a biztonságos rendszerbillentyűzeten keresztül kerüljenek bevitelre.

Beállítás Swift kóddal

Az automatikus javítás kezelése Swift-ben az UITextField és UITextView objektumok autocorrectionType tulajdonságán keresztül történik. A tulajdonság olvasásra és írásra is elérhető, és dinamikusan módosítható a beviteli kontextustól függően. Az Interface Builder-en keresztüli beállítás az attribútumvizsgálóban érhető el a Correction név alatt.

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

Bejelentkezési űrlaphoz az automatikus javítást ki kell kapcsolni a jelszómezőhöz, és alapértelmezetten bekapcsolva hagyni a bejelentkezési mezőhöz. Az e-mail mezőt szintén ajánlott automatikus javítás nélkül hagyni, mivel a @ szimbólumot és a domain neveket gyakran hibásan cseréli le. A felhasználónév mezőhöz az automatikus javítás bekapcsolható, ha a felhasználónév egy olvasható szó.

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

UITextView esetén az automatikus javítás beállítása hasonló módon történik. Ez különösen fontos a többsoros megjegyzés-, üzenet- és jegyzetmezőknél, ahol az automatikus javítás a legnagyobb előnyt nyújtja, de kellemetlenséget is okozhat műszaki kifejezések vagy kód beírásakor.

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

Az automatikus javítás dinamikus módosításához használja az UITextFieldDelegate delegáltat. A textFieldDidBeginEditing metódus a mező aktiválásakor hívódik meg, és ebben módosítható az autocorrectionType az aktuális kontextustól vagy a mező szerepétől függően, amely az alkalmazás működése során változhat.

Mikor kapcsoljuk ki az automatikus javítást

Az automatikus javítást ki kell kapcsolni azokban a mezőkben, ahol a bevitt adatok pontossága kritikus, és a rendszer nem tudja helyesen meghatározni a felhasználó szándékát. Fő esetek: jelszó- és biztonságos adatmezők, e-mail cím mezők, keresősávok, kód- és programkód-beviteli mezők, valamint a nem szabványos adatformátumú mezők.

Keresősávokhoz (UISearchBar) az automatikus javítás alapértelmezetten ki van kapcsolva, ami megfelel a felhasználók elvárásainak. Kereséskor a felhasználó hiányos szavakat, műszaki kifejezéseket vagy különböző nyelvű lekérdezéseket írhat be, és az automatikus javítás csak zavarná. Hasonlóan a URL- és domainnév-beviteli mezőkhöz.

Üzenetküldőkben és kommunikációs alkalmazásokban az automatikus javítás általában be van kapcsolva, de szleng, rövidítések és informális szókincs beírásakor kellemetlenséget okozhat. Ilyen esetekben a felhasználó kikapcsolhatja az automatikus javítást a billentyűzetbeállításokon keresztül, vagy a fejlesztő kapcsolót helyezhet el közvetlenül az alkalmazás felületén.

Az Apple Human Interface Guidelines szerint az automatikus javítást ki kell kapcsolni minden olyan mezőhöz, ahol a bevitt adatok nem találhatók meg a rendszerszótárban: rendelésszámok, foglalási kódok, azonosítók, IMEI, MAC-címek. Ha a mező alfanumerikus adatokat fogad nem szabványos formátumban — kapcsolja ki az automatikus javítást.

Gyakran ismételt kérdések

Hogyan kapcsolható ki teljesen az automatikus javítás a teljes alkalmazásban?

Az automatikus javítás globális kikapcsolása egy alkalmazásban nem létezik. Be kell állítani az autocorrectionType = .no értéket minden szövegmezőhöz külön-külön, vagy létre kell hozni egy UITextField alosztályt felülírt értékkel.

Miért nem működik az automatikus javítás a szimulátoron?

A szimulátor egy egyszerűsített beviteli modellt használ a Mac billentyűzetéről. Az automatikus javítás nyelvi modellje nem aktív a szimulátorban — teszteléshez használjon valós eszközt.

Hogyan lehet szót hozzáadni a személyes szótárhoz?

A felhasználó a Beállítások > Általános > Billentyűzet > Szövegcsere útvonalon adhat hozzá szót. Az alkalmazások számára nincs API a szavak programozott hozzáadásához a rendszer automatikus javítási szótárához.

Kikapcsolja a keyboardType beállítása az automatikus javítást?

Nem, a keyboardType nem befolyásolja az automatikus javítást. Még a .numberPad billentyűzet esetén is aktív lehet az automatikus javítás, ha nem kapcsolták ki kifejezetten az autocorrectionType-on keresztül.

Működik az automatikus javítás harmadik féltől származó billentyűzetekhez?

A harmadik féltől származó billentyűzetek saját automatikus javítási mechanizmusokkal rendelkeznek, és nem használják a rendszer UITextAutocorrectionType-ot. A viselkedés az adott billentyűzet implementációjától függ.

Összefoglalás

  • Autocorrection — az iOS rendszerfunkciója a helyesírási hibák automatikus javítására szövegmezőkben
  • Három mód UITextAutocorrectionType: .default (örökli a beállításokat), .yes (bekapcsolva), .no (kikapcsolva)
  • Transformer nyelvi modell akár 10 token kontextust dolgoz fel, és teljes mértékben az eszközön működik
  • Safe Keyboard automatikusan kikapcsolja az automatikus javítást a secureTextEntry = true mezőkhöz
  • Az automatikus javítás haszontalan jelszó, e-mail, kód, keresés és nem szabványos adatformátumok mezőihez
  • A beállítás az autocorrectionType tulajdonságon keresztül történik minden mezőhöz egyénileg
  • Javaslat — tesztelje az automatikus javítás viselkedését valós eszközön aktív nyelvi modellel

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is