Autocorrection is een ingebouwd mechanisme in iOS dat automatisch spelfouten corrigeert bij het invoeren van tekst. UIKit beheert het gedrag van autocorrectie via de eigenschap autocorrectionType in het UITextInputTraits-protocol en ondersteunt drie modi: standaard, ingeschakeld en uitgeschakeld. Volgens Apple Text Programming Guide (2025) analyseert autocorrectie de ingevoerde tekst op basis van het systeemwoordenboek en machine learning op het apparaat. Gebruik autocorrectionType voor elk tekstveld afzonderlijk — hiermee kunt u het gedrag aanpassen aan de specifieke kenmerken van de ingevoerde gegevens.
Belangrijkste punten
Autocorrection (autocorrectie) is een functie van het besturingssysteem iOS die ingevoerde woorden automatisch vervangt door vermoedelijk correcte varianten wanneer een spelfout wordt gedetecteerd. Het mechanisme werkt op het niveau van UIKit-tekstvelden en is beschikbaar in alle apps die de standaard UITextField- en UITextView-elementen gebruiken.
Aan de basis van autocorrectie ligt een taalmodel dat is getraind op miljoenen tekstvoorbeelden voor elke ondersteunde taal. Het model werkt volledig op het apparaat (on-device), wat de vertrouwelijkheid van ingevoerde gegevens garandeert — tekst wordt niet naar Apple-servers gestuurd voor analyse. Met elke iOS-update wordt het model verfijnd en uitgebreid met nieuwe woorden en regels.
Autocorrectie wordt automatisch geactiveerd voor alle tekstvelden, tenzij de ontwikkelaar het expliciet heeft uitgeschakeld. De gebruiker kan autocorrectie volledig uitschakelen in de systeeminstellingen (Instellingen > Algemeen > Toetsenbord > Autocorrectie), maar de ontwikkelaar kan dit gedrag ook voor afzonderlijke velden beheren via de eigenschap autocorrectionType.
Volgens WWDC 2023 Session 204 heeft Apple een verbeterd taalmodel voor autocorrectie gepresenteerd op basis van Transformer, dat de context van de hele zin in overweging neemt, niet alleen het laatste woord. Dit heeft het aantal valse correcties met 30% verminderd in vergelijking met het vorige model op basis van n-grammen.
UITextAutocorrectionType is een opsomming met drie waarden die het gedrag van autocorrectie voor een specifiek tekstveld bepaalt. Elke waarde wordt ingesteld via de eigenschap autocorrectionType, beschikbaar in Interface Builder en in code bij het aanmaken van het veld.
De waarde .default betekent dat het veld de globale autocorrectie-instelling overneemt van de systeemtoetsenbordparameters. Deze modus wordt aanbevolen voor de meeste tekstvelden, omdat deze de keuze van de gebruiker respecteert. Als de gebruiker autocorrectie in de instellingen heeft uitgeschakeld, zal een veld met .default het ook niet gebruiken.
De waarde .yes schakelt autocorrectie gedwongen in voor het veld, ongeacht de systeeminstelling. Deze modus mag alleen worden gebruikt voor velden waar spellingnauwkeurigheid kritisch is — bijvoorbeeld in teksteditors, notitie- of berichtenvelden. Apple raadt aan .yes met voorzichtigheid te gebruiken, omdat gedwongen inschakelen in tegenspraak kan zijn met de verwachtingen van de gebruiker.
De waarde .no schakelt autocorrectie uit voor een specifiek veld. Deze modus is verplicht voor wachtwoordvelden (secure text entry), e-mailadressen, bevestigingscodes en zoekopdrachten. In deze velden is autocorrectie niet alleen nutteloos, maar ook schadelijk — het kan correct ingevoerde gegevens vervangen door foutieve.
| Modus | Waarde | Aanbeveling |
|---|---|---|
| .default | Neemt systeeminstelling over | De meeste invoervelden |
| .yes | Gedwongen ingeschakeld | Teksteditors, notities |
| .no | Gedwongen uitgeschakeld | Wachtwoorden, e-mail, zoeken, codes |
Het taalmodel van iOS-autocorrectie gebruikt een combinatie van een statisch woordenboek en een dynamisch geleerd model. Het systeemwoordenboek bevat de meest gebruikte woorden voor elke taal, en het op Transformer gebaseerde taalmodel analyseert de context en de waarschijnlijkheid van vervanging. Het model leert op het apparaat op basis van door de gebruiker ingevoerde teksten.
De gebruiker kan via de toetsenbordinstellingen (Instellingen > Algemeen > Toetsenbord > Tekstvervanging) woorden toevoegen aan het persoonlijke woordenboek. Toegevoegde woorden worden opgeslagen in iCloud en gesynchroniseerd tussen apparaten via dezelfde Apple ID. Het systeem zal woorden uit het persoonlijke woordenboek niet corrigeren, wat handig is voor namen, merken en technische termen.
Voor specifieke domeinen — medisch, juridisch, technisch — bevat het standaardwoordenboek mogelijk onvoldoende termen. In dergelijke apps wordt aanbevolen autocorrectie uit te schakelen voor de betreffende velden of aangepaste tekstvervanging te gebruiken via de UIResponder-methode .replacementDictionary voor iOS 17+.
Volgens Apple Machine Learning Research (2024) verwerkt het nieuwe autocorrectiemodel op basis van de Transformer-architectuur tot 10 tokens context (tegenover 3 tokens in het vorige model), waardoor de intentie van de gebruiker nauwkeuriger kan worden bepaald. Het model houdt niet alleen rekening met spelling, maar ook met de grammaticale structuur van de zin.
Safe Keyboard is een beveiligde invoermodus die automatisch wordt geactiveerd voor velden met secureTextEntry = true. In deze modus worden autocorrectie, automatisch hoofdlettergebruik en voorspellende invoer door het systeem uitgeschakeld, ongeacht de ingestelde waarden van autocorrectionType. Het systeem blokkeert ook de toegang tot het persoonlijke woordenboek en tekstvervangingen.
Safe Keyboard voorkomt lekkage van ingevoerde gegevens via autocorrectiemechanismen. Als autocorrectie actief zou zijn voor een wachtwoordveld, zou het systeem het ingevoerde wachtwoord kunnen opslaan in het persoonlijke woordenboek of naar Apple-servers kunnen sturen voor modeltraining. Safe Keyboard garandeert dat vertrouwelijke gegevens de grenzen van de app niet verlaten.
Voor financiële apps wordt Safe Keyboard alleen automatisch geactiveerd voor velden met secureTextEntry. Voor velden voor kaartnummers, vervaldata en CVV-codes moet de ontwikkelaar handmatig autocorrectie uitschakelen door autocorrectionType = .no en keyboardType = .numberPad of .phonePad in te stellen.
Vanaf iOS 17 ondersteunt Safe Keyboard bescherming tegen onderschepping via toetsenborden van derden. Als de gebruiker een toetsenbord uit de App Store heeft geïnstalleerd, wordt bij activering van secureTextEntry het systeemtoetsenbord automatisch het toetsenbord van derden vervangen, zelfs als dit standaard was geselecteerd. Dit garandeert dat wachtwoorden alleen via het beveiligde systeemtoetsenbord worden ingevoerd.
Het beheren van autocorrectie in Swift gebeurt via de eigenschap autocorrectionType van UITextField- en UITextView-objecten. De eigenschap is beschikbaar voor zowel lezen als schrijven en kan dynamisch worden gewijzigd afhankelijk van de invoercontext. Configuratie via Interface Builder is beschikbaar in de attributeninspector onder de naam Correction.
let textField = UITextField()
textField.autocorrectionType = .no
Voor een aanmeldformulier moet autocorrectie worden uitgeschakeld voor het wachtwoordveld en standaard worden ingeschakeld voor het loginveld. Het e-mailveld wordt ook aanbevolen zonder autocorrectie te laten, omdat het @-symbool en domeinnamen vaak onjuist worden vervangen. Voor het gebruikersnaamveld kan autocorrectie worden ingeschakeld als de gebruikersnaam een leesbaar woord is.
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
}
}
Voor UITextView verloopt de configuratie van autocorrectie op dezelfde manier. Dit is vooral belangrijk voor meerregelige opmerkingen-, berichten- en notitievelden, waar autocorrectie het meeste voordeel biedt, maar ook ongemak kan veroorzaken bij het invoeren van technische termen of code.
let textView = UITextView()
textView.autocorrectionType = .default
Voor dynamische wijziging van autocorrectie gebruikt u de UITextFieldDelegate-delegate. De methode textFieldDidBeginEditing wordt aangeroepen bij activering van het veld en daarin kan autocorrectionType worden gewijzigd op basis van de huidige context of de rol van het veld, die tijdens de werking van de app kan veranderen.
Autocorrectie moet worden uitgeschakeld in velden waar de nauwkeurigheid van ingevoerde gegevens kritisch is en het systeem de intentie van de gebruiker niet correct kan bepalen. Hoofdgevallen: wachtwoord- en beveiligde gegevensvelden, e-mailadresvelden, zoekbalken, code- en programmeercode-invoervelden, evenals velden met niet-standaard gegevensformaten.
Voor zoekbalken (UISearchBar) is autocorrectie standaard uitgeschakeld, wat overeenkomt met de verwachtingen van gebruikers. Bij het zoeken kan de gebruiker onvolledige woorden, technische termen of zoekopdrachten in verschillende talen invoeren, en autocorrectie zou alleen maar hinderen. Hetzelfde geldt voor URL- en domeinnaaminvoervelden.
In messengers en communicatie-apps is autocorrectie meestal ingeschakeld, maar bij het invoeren van jargon, afkortingen en informele woordenschat kan het ongemak veroorzaken. In dergelijke gevallen kan de gebruiker autocorrectie uitschakelen via de toetsenbordinstellingen, of de ontwikkelaar kan een schakelaar rechtstreeks in de app-interface aanbieden.
Volgens Apple Human Interface Guidelines moet autocorrectie worden uitgeschakeld voor elk veld waar ingevoerde gegevens mogelijk niet in het systeemwoordenboek voorkomen: bestelnummers, reserveringscodes, identificatiegegevens, IMEI, MAC-adressen. Als een veld alfanumerieke gegevens in een niet-standaard formaat accepteert — schakel autocorrectie uit.
Veelgestelde vragen
Een globale uitschakeling van autocorrectie voor een app bestaat niet. U moet autocorrectionType = .no instellen voor elk tekstveld afzonderlijk of een UITextField-subklasse maken met een overschreven waarde.
De simulator gebruikt een vereenvoudigd invoermodel van het Mac-toetsenbord. Het taalmodel van autocorrectie is niet actief in de simulator — gebruik een echt apparaat voor testen.
De gebruiker kan een woord toevoegen via Instellingen > Algemeen > Toetsenbord > Tekstvervanging. Er is geen API voor apps om programmatisch woorden toe te voegen aan het systeemwoordenboek voor autocorrectie.
Nee, keyboardType heeft geen invloed op autocorrectie. Zelfs voor het .numberPad-toetsenbord kan autocorrectie actief zijn, als deze niet expliciet is uitgeschakeld via autocorrectionType.
Toetsenborden van derden hebben hun eigen autocorrectiemechanismen en gebruiken geen systeem-UITextAutocorrectionType. Het gedrag hangt af van de implementatie van het specifieke toetsenbord.
Samenvatting
We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.
Lees ook