Autocorrection — podstata, mechanismy a UITextAutocorrectionType

Autor: IT Sectr Publikováno: 2026-07-08 Doba čtení: 7 min

Autocorrection je vestavěný mechanismus iOS, který automaticky opravuje pravopisné chyby při zadávání textu. UIKit spravuje chování automatické opravy pomocí vlastnosti autocorrectionType v protokolu UITextInputTraits a podporuje tři režimy: výchozí, zapnutý a vypnutý. Podle Apple Text Programming Guide (2025) automatická oprava analyzuje zadávaný text na základě systémového slovníku a strojového učení na zařízení. Používejte autocorrectionType pro každé textové pole zvlášť — umožňuje to přizpůsobit chování specifikům zadávaných dat.

Hlavní body

  • Autocorrection — systémový mechanismus iOS pro automatické opravování pravopisných chyb při psaní
  • UITextAutocorrectionType podporuje tři režimy: .default, .yes a .no pro každé pole individuálně
  • Slovník automatické opravy je postaven na systémovém slovníku iOS a jazykovém modelu trénovaném na zařízení
  • Safe Keyboard — zabezpečená klávesnice vypínající automatickou opravu pro pole hesel a finančních údajů
  • Lokalizace — automatická oprava funguje pro všechny podporované jazyky klávesnice, včetně dalších rozvržení

Co je Autocorrection?

Autocorrection (automatická oprava) je funkce operačního systému iOS, která automaticky nahrazuje zadaná slova pravděpodobně správnými variantami při detekci pravopisné chyby. Mechanismus pracuje na úrovni textových polí UIKit a je dostupný ve všech aplikacích používajících standardní vstupní prvky UITextField a UITextView.

Základem automatické opravy je jazykový model trénovaný na milionech textových příkladů pro každý podporovaný jazyk. Model pracuje zcela na zařízení (on-device), což zaručuje důvěrnost zadávaných dat — text není odesílán na servery Apple k analýze. S každou aktualizací iOS je model zpřesňován a rozšiřován o nová slova a pravidla.

Automatická oprava se aktivuje automaticky pro všechna textová pole, pokud ji vývojář výslovně nevypnul. Uživatel může automatickou opravu zcela vypnout v systémových nastaveních (Nastavení > Obecné > Klávesnice > Automatická oprava), ale vývojář může toto chování spravovat pro jednotlivá pole pomocí vlastnosti autocorrectionType.

Podle WWDC 2023 Session 204 představila Apple vylepšený jazykový model automatické opravy založený na Transformer, který zohledňuje kontext celé věty, nejen posledního slova. To umožnilo snížit počet falešných oprav o 30 % ve srovnání s předchozím modelem založeným na n-gramech.

Režimy automatické opravy v iOS

UITextAutocorrectionType je výčet se třemi hodnotami určujícími chování automatické opravy pro konkrétní textové pole. Každá hodnota se nastavuje pomocí vlastnosti autocorrectionType, dostupné v Interface Builder a v kódu při vytváření pole.

Režim .default

Hodnota .default znamená, že pole dědí globální nastavení automatické opravy z parametrů systémové klávesnice. Tento režim je doporučen pro většinu textových polí, protože respektuje volbu uživatele. Pokud uživatel vypnul automatickou opravu v nastavení, pole s .default ji také nebude používat.

Režim .yes

Hodnota .yes vynucuje zapnutí automatické opravy pro pole bez ohledu na systémové nastavení. Tento režim by měl být použit pouze pro pole, kde je pravopisná přesnost kritická — například v textových editorech, polích poznámek nebo zpráv. Apple doporučuje používat .yes s opatrností, protože vynucené zapnutí může být v rozporu s očekáváním uživatele.

Režim .no

Hodnota .no vypíná automatickou opravu pro konkrétní pole. Tento režim je povinný pro pole hesel (secure text entry), e-mailové adresy, potvrzovací kódy a vyhledávací dotazy. V těchto polích je automatická oprava nejen zbytečná, ale i škodlivá — může nahradit správně zadaná data chybnými.

RežimHodnotaDoporučení
.defaultDědí systémové nastaveníVětšina vstupních polí
.yesVynuceně zapnutoTextové editory, poznámky
.noVynuceně vypnutoHesla, e-mail, hledání, kódy

Jazykový model a slovník

Jazykový model automatické opravy iOS používá kombinaci statického slovníku a dynamicky učícího se modelu. Systémový slovník obsahuje nejčastěji používaná slova pro každý jazyk a jazykový model založený na Transformeru analyzuje kontext a pravděpodobnost nahrazení. Model se učí na zařízení na základě textů zadaných uživatelem.

Uživatel může přidávat slova do osobního slovníku pomocí nastavení klávesnice (Nastavení > Obecné > Klávesnice > Nahrazování textu). Přidaná slova se ukládají na iCloud a synchronizují se mezi zařízeními přes stejné Apple ID. Systém nebude opravovat slova z osobního slovníku, což je vhodné pro jména, značky a technické termíny.

Pro specifické domény — lékařské, právní, technické — může standardní slovník obsahovat nedostatečné množství termínů. V takových aplikacích se doporučuje buď vypnout automatickou opravu pro příslušná pole, nebo použít vlastní nahrazování textu pomocí metody UIResponder .replacementDictionary pro iOS 17+.

Podle Apple Machine Learning Research (2024) nový model automatické opravy založený na architektuře Transformer zpracovává až 10 tokenů kontextu (oproti 3 tokenům v předchozím modelu), což umožňuje přesnější určení záměru uživatele. Model zohledňuje nejen pravopis, ale i gramatickou strukturu věty.

Safe Keyboard a důvěrná data

Safe Keyboard je zabezpečený režim zadávání, který se automaticky aktivuje pro pole s secureTextEntry = true. V tomto režimu je automatická oprava, automatická kapitalizace a prediktivní zadávání vypnuto systémem bez ohledu na nastavené hodnoty autocorrectionType. Systém také blokuje přístup k osobnímu slovníku a nahrazování textu.

Safe Keyboard zabraňuje úniku zadávaných dat prostřednictvím mechanismů automatické opravy. Pokud by byla automatická oprava aktivní pro pole hesla, systém by mohl uložit zadané heslo do osobního slovníku nebo jej odeslat na servery Apple pro trénování modelu. Safe Keyboard zaručuje, že důvěrná data neopustí hranice aplikace.

Pro finanční aplikace se Safe Keyboard aktivuje automaticky pouze pro pole s secureTextEntry. Pro pole čísel karet, dat expirace a CVV kódů musí vývojář ručně vypnout automatickou opravu nastavením autocorrectionType = .no a keyboardType = .numberPad nebo .phonePad.

Počínaje iOS 17 podporuje Safe Keyboard ochranu proti zachycení prostřednictvím klávesnic třetích stran. Pokud uživatel nainstaloval klávesnici z App Store, při aktivaci secureTextEntry systémová klávesnice automaticky nahradí klávesnici třetí strany, i když byla vybrána jako výchozí. To zaručuje, že hesla jsou zadávána pouze prostřednictvím bezpečné systémové klávesnice.

Konfigurace pomocí Swift kódu

Správa automatické opravy ve Swiftu se provádí pomocí vlastnosti autocorrectionType objektů UITextField a UITextView. Vlastnost je dostupná pro čtení i zápis a může být dynamicky měněna v závislosti na kontextu zadávání. Konfigurace přes Interface Builder je dostupná v inspektoru atributů pod názvem Correction.

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

Pro přihlašovací formulář by měla být automatická oprava vypnuta pro pole hesla a ponechána výchozí pro pole přihlášení. Pole e-mailu se také doporučuje ponechat bez automatické opravy, protože symbol @ a názvy domén jsou často nesprávně nahrazovány. Pro pole uživatelského jména může být automatická oprava zapnuta, pokud je uživatelské jméno čitelné slovo.

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

Pro UITextView se konfigurace automatické opravy provádí obdobně. To je zvláště důležité pro víceřádková pole komentářů, zpráv a poznámek, kde automatická oprava přináší největší užitek, ale může také způsobovat nepříjemnosti při zadávání technických termínů nebo kódu.

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

Pro dynamickou změnu automatické opravy použijte delegáta UITextFieldDelegate. Metoda textFieldDidBeginEditing je volána při aktivaci pole a v ní lze změnit autocorrectionType v závislosti na aktuálním kontextu nebo roli pole, která se může během provozu aplikace měnit.

Kdy vypnout automatickou opravu

Automatickou opravu je třeba vypnout v polích, kde je přesnost zadávaných dat kritická a systém nemůže správně určit záměr uživatele. Hlavní případy: pole hesel a zabezpečených dat, pole e-mailových adres, vyhledávací řádky, pole pro zadávání kódu a programovacího kódu, stejně jako pole s nestandardními formáty dat.

Pro vyhledávací řádky (UISearchBar) je automatická oprava ve výchozím nastavení vypnuta, což odpovídá očekávání uživatelů. Při vyhledávání může uživatel zadávat neúplná slova, technické termíny nebo dotazy v různých jazycích a automatická oprava by pouze překážela. Podobně pro pole zadávání URL a názvů domén.

V messenger a komunikačních aplikacích je automatická oprava obvykle zapnuta, ale při zadávání slangu, zkratek a neformální slovní zásoby může způsobovat nepříjemnosti. V takových případech může uživatel vypnout automatickou opravu v nastavení klávesnice nebo může vývojář poskytnout přepínač přímo v rozhraní aplikace.

Podle Apple Human Interface Guidelines by měla být automatická oprava vypnuta pro každé pole, kde zadaná data nemusí být v systémovém slovníku: čísla objednávek, rezervační kódy, identifikátory, IMEI, MAC adresy. Pokud pole přijímá alfanumerická data v nestandardním formátu — vypněte automatickou opravu.

Často kladené otázky

Jak zcela vypnout automatickou opravu v celé aplikaci?

Globální vypnutí automatické opravy pro aplikaci neexistuje. Je třeba nastavit autocorrectionType = .no pro každé textové pole zvlášť nebo vytvořit podtřídu UITextField s přepsanou hodnotou.

Proč automatická oprava nefunguje na simulátoru?

Simulátor používá zjednodušený model zadávání z klávesnice Mac. Jazykový model automatické opravy není na simulátoru aktivní — pro testování používejte skutečné zařízení.

Jak přidat slovo do osobního slovníku?

Uživatel může přidat slovo přes Nastavení > Obecné > Klávesnice > Nahrazování textu. Pro aplikaci neexistuje API pro programové přidávání slov do systémového slovníku automatické opravy.

Vypíná nastavení keyboardType automatickou opravu?

Ne, keyboardType neovlivňuje automatickou opravu. Dokonce i pro klávesnici .numberPad může být automatická oprava aktivní, pokud není výslovně vypnuta přes autocorrectionType.

Funguje automatická oprava pro klávesnice třetích stran?

Klávesnice třetích stran mají své vlastní mechanismy automatické opravy a nepoužívají systémový UITextAutocorrectionType. Chování závisí na implementaci konkrétní klávesnice.

Shrnutí

  • Autocorrection — systémová funkce iOS pro automatické opravování pravopisných chyb v textových polích
  • Tři režimy UITextAutocorrectionType: .default (dědí nastavení), .yes (zapnuto), .no (vypnuto)
  • Jazykový model Transformer zpracovává až 10 tokenů kontextu a pracuje zcela na zařízení
  • Safe Keyboard automaticky vypíná automatickou opravu pro pole s secureTextEntry = true
  • Automatická oprava je zbytečná pro pole hesel, e-mailů, kódů, vyhledávání a nestandardních formátů dat
  • Konfigurace se provádí pomocí vlastnosti autocorrectionType pro každé pole individuálně
  • Doporučení — testujte chování automatické opravy na skutečném zařízení s aktivním jazykovým modelem

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také