Autocapitalization ist ein iOS-Mechanismus, der den ersten Buchstaben des eingegebenen Textes in bestimmten Kontexten automatisch in einen Großbuchstaben umwandelt. UIKit stellt die Eigenschaft autocapitalizationType im Protokoll UITextInputTraits mit vier Modi bereit: none, words, sentences und allCharacters. Laut Apple Text Programming Guide (2025) verbessert die richtige Konfiguration der Autocapitalization die Benutzererfahrung und reduziert die Anzahl manueller Korrekturen bei der Eingabe. Verwenden Sie den Modus sentences für die meisten Textfelder und none für Benutzernamen und Passwörter.
Das Wichtigste
Autocapitalization ist eine Funktion des iOS-Betriebssystems, die das erste Zeichen des Textes automatisch in einen Großbuchstaben umwandelt, wenn bestimmte Bedingungen erfüllt sind. Der Mechanismus wird über die Eigenschaft autocapitalizationType gesteuert, die für alle Elemente verfügbar ist, die das Protokoll UITextInputTraits implementieren: UITextField, UITextView und UISearchBar.
Die Funktion arbeitet auf der iOS-Text-Engine-Ebene und wird beim Eingeben jedes Zeichens aktiviert. Das System analysiert die Cursorposition und den umgebenden Text, um zu bestimmen, ob das aktuelle Eingabezeichen großgeschrieben werden soll. Wenn die Bedingung erfüllt ist, ersetzt iOS automatisch den Kleinbuchstaben durch einen Großbuchstaben, bevor er im Feld angezeigt wird.
Laut den Apple Human Interface Guidelines (2025) ist die Autocapitalization Teil eines breiteren Systems der predictive Input, das auch die Autokorrektur und die predictive Texteingabe umfasst. Der Benutzer kann all diese Funktionen global in den Systemeinstellungen (Einstellungen > Allgemein > Tastatur) deaktivieren, aber der Entwickler steuert sie auch auf der Ebene einzelner Felder.
Im Gegensatz zur Autokorrektur verwendet die Autocapitalization kein Sprachmodell — sie arbeitet mit einfachen Regeln: nach einem Punkt und Leerzeichen, am Textanfang, nach einem Zeilenumbruchzeichen. Die Ausnahme ist der Modus words, bei dem der erste Buchstabe jedes Wortes unabhängig vom Kontext großgeschrieben wird.
UITextAutocapitalizationType ist eine Aufzählung von vier Werten, die die Strategie zur automatischen Groß-/Kleinschreibung definieren. Jeder Modus ist für einen bestimmten Textfeldtyp konzipiert und löst eine bestimmte Aufgabe der Benutzererfahrung.
Der Modus .none deaktiviert die automatische Groß-/Kleinschreibung vollständig. Alle Zeichen werden in der Form eingegeben, in der der Benutzer sie eingibt. Dieser Modus ist erforderlich für Passwortfelder, E-Mail-Adressen, Spitznamen, Suchanfragen und alle Felder, bei denen die Groß-/Kleinschreibung für die serverseitige Datenverarbeitung wichtig ist.
Der Modus .words schreibt den ersten Buchstaben jedes eingegebenen Wortes groß. Das System bestimmt Wortgrenzen durch Leerzeichen und wandelt das erste Zeichen nach einem Leerzeichen in einen Großbuchstaben um. Dieser Modus ist praktisch für Felder wie Vorname, Nachname, Städtenamen, Straßennamen und andere Felder, bei denen jedes Wort mit einem Großbuchstaben beginnen sollte.
Der Modus .sentences ist am weitesten verbreitet und wird standardmäßig für die meisten Textfelder verwendet. Das System schreibt den ersten Buchstaben nach einem Punkt, Ausrufezeichen oder Fragezeichen gefolgt von einem Leerzeichen groß. Dieser Modus ist ideal für Notizen, Nachrichten, Kommentare und andere mehrzeilige Textfelder.
Der Modus .allCharacters wandelt alle eingegebenen Zeichen in Großbuchstaben um. Dieser Modus entspricht dem ständigen Gedrückthalten der Feststelltaste und wird für Felder verwendet, bei denen Daten in Großbuchstaben vorliegen müssen: Postleitzahlen, Ländercodes, Abkürzungen, Bestellnummern. Mit Vorsicht verwenden, da Text in Großbuchstaben schwerer zu lesen ist.
| Modus | Beschreibung | Eingabebeispiel | Empfehlung |
|---|---|---|---|
| .none | Keine Änderungen | max@mail.com | E-Mail, Passwörter, Suche |
| .words | Jedes Wort | Max Mustermann | Name, Adresse, Stadt |
| .sentences | Satzanfang | Hallo. Wie geht es Ihnen? | Nachrichten, Notizen |
| .allCharacters | Alles groß | ABC-123 | Codes, Indizes |
Der Autocapitalization-Mechanismus wird während der Tastendruckverarbeitung aktiviert, bevor das Zeichen auf dem Bildschirm angezeigt wird. Wenn der Benutzer eine Taste drückt, überprüft UITextInputTraits die aktuelle Cursorposition und wendet die Regel zur Groß-/Kleinschreibung gemäß dem eingestellten autocapitalizationType an.
Für den Modus .sentences verfolgt das System Triggerzeichen: Punkt (.), Ausrufezeichen (!), Fragezeichen (?) und das Zeilenumbruchzeichen ( ) wenn aktiviert. Nach Erkennung eines Triggerzeichens und des folgenden Leerzeichens setzt das System ein Flag „Großbuchstabe erwartet“ für das nächste eingegebene Zeichen.
Der Modus .words verfolgt das Leerzeichen als Auslöser. Nach jedem Leerzeichen erwartet das System einen Großbuchstaben für das nächste Wort. Es gibt jedoch Ausnahmen: Nach einem Bindestrich, Apostroph und anderen Satzzeichen innerhalb eines Wortes wird kein Großbuchstabe eingefügt. Beispielsweise bleibt „O’Brien“ korrekt.
Ein wichtiges Merkmal ist, dass die Autocapitalization nur auf das erste Zeichen eines Wortes wirkt. Wenn der Benutzer ein Wort mit Großbuchstaben in der Mitte eingibt (z. B. iPhone oder macOS), ändert das System diese nicht, da die Umwandlung nur auf das erste Zeichen nach dem Auslöser angewendet wird. Das bedeutet, dass Markennamen und Produkte mit nicht standardmäßiger Groß-/Kleinschreibung nicht beeinträchtigt werden.
Die Autocapitalization sollte deaktiviert werden in Feldern, in denen die Groß-/Kleinschreibung für die korrekte Datenverarbeitung wichtig ist. Häufige Fälle: E-Mail-Adressfelder, Spitznamen und Benutzernamen, Passwörter, Suchanfragen, URLs, Bestätigungscodes, IMEI und Seriennummern. In all diesen Fällen führen automatische Änderungen der Groß-/Kleinschreibung zu Fehlern bei der serverseitigen Verarbeitung.
Für Suchfelder (UISearchBar) ist die Autocapitalization standardmäßig deaktiviert, was den Erwartungen der Benutzer entspricht. Eine Suchanfrage kann in beliebiger Groß-/Kleinschreibung eingegeben werden, und der Server wandelt sie normalerweise selbst in Kleinbuchstaben um. Wenn die Autocapitalization für die Suche aktiviert wird, muss der Benutzer den Großbuchstaben am Anfang jeder Anfrage manuell korrigieren.
In Registrierungsformularen sollte das Feld für Benutzername oder Spitzname den Modus .none haben, da viele Systeme bei Benutzernamen die Groß-/Kleinschreibung unterscheiden. Das E-Mail-Feld sollte ebenfalls ohne Autocapitalization sein — obwohl Domainnamen nicht zwischen Groß- und Kleinschreibung unterscheiden, kann der lokale Teil einer E-Mail theoretisch zwischen Groß- und Kleinschreibung unterscheiden, auch wenn dies in der Praxis selten vorkommt.
Laut der Apple Developer Documentation erben Felder mit secureTextEntry (Passwörter) automatisch autocapitalizationType = .none, selbst wenn der Entwickler explizit einen anderen Wert gesetzt hat. Das System hat die höchste Priorität für sichere Eingaben und ignoriert alle Versuche, die Autocapitalization für ein Passwortfeld zu aktivieren.
Die Konfiguration der Autocapitalization in Swift erfolgt über die Eigenschaft autocapitalizationType. Die Eigenschaft ist für UITextField, UITextView und UISearchBar verfügbar. Der Wert kann sowohl im Code als auch über den Interface Builder im Attribute Inspector festgelegt werden, wo der Modus Capitalization genannt wird.
let nameField = UITextField()
nameField.autocapitalizationType = .words
let emailField = UITextField()
emailField.autocapitalizationType = .none
Für ein Kontaktformular konfigurieren Sie jedes Feld entsprechend seiner Semantik: Name — .words, E-Mail — .none, Nachricht — .sentences. Diese Kombination bietet die beste Benutzererfahrung und minimiert die Notwendigkeit manueller Korrekturen der Groß-/Kleinschreibung.
class ContactFormViewController: UIViewController {
@IBOutlet var nameField: UITextField!
@IBOutlet var emailField: UITextField!
@IBOutlet var messageView: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
nameField.autocapitalizationType = .words
emailField.autocapitalizationType = .none
messageView.autocapitalizationType = .sentences
}
}
Für programmatische Modusänderungen zur Laufzeit verwenden Sie den Delegaten UITextFieldDelegate. Wenn ein Feld beispielsweise in verschiedenen Kontexten verwendet werden kann, ändern Sie autocapitalizationType in der Methode textFieldDidBeginEditing je nach aktuellem Betriebsmodus des Formulars.
func textFieldDidBeginEditing(_ textField: UITextField) {
if textField === codeField {
textField.autocapitalizationType = .allCharacters
}
}
Die Autocapitalization hängt von der auf der Tastatur des Benutzers eingestellten Eingabesprache ab. Verschiedene Sprachen können unterschiedliche Regeln für die Groß-/Kleinschreibung haben. Beispielsweise wird im Türkischen der Buchstabe „i“ in Großschreibung zu „İ“ (mit Punkt), während „I“ in Kleinschreibung zu „ı“ (ohne Punkt) wird. iOS behandelt diese Besonderheiten automatisch.
Für Russisch folgt die Autocapitalization denselben Regeln wie Englisch: Großbuchstabe nach einem Punkt, am Satzanfang und nach einem Zeilenumbruch. Probleme können mit dem Buchstaben „yo“ auftreten — obwohl er im Systemwörterbuch vorhanden ist, zeigen ihn nicht alle Tastaturlayouts in der Hauptebene an, und die Autocapitalization wandelt „yo“ korrekt in „Yo“ um.
Für Chinesisch, Japanisch und Koreanisch wird die Autocapitalization nicht angewendet, da diese Sprachen kein Konzept der Groß-/Kleinschreibung haben. Der Modus autocapitalizationType wird vom System bei Verwendung der entsprechenden Tastaturen ignoriert, und das Feld verhält sich unabhängig vom eingestellten Wert genauso wie im Modus .none.
Für Arabisch und Hebräisch wird die Autocapitalization ebenfalls nicht angewendet, da diese Sprachen ihr eigenes Schriftsystem ohne Unterscheidung zwischen Groß- und Kleinbuchstaben verwenden. Das iOS-System erkennt die Eingabesprache korrekt und ignoriert die Autocapitalization-Einstellungen für Sprachen, in denen dieses Konzept nicht existiert.
Häufig gestellte Fragen
Ja, die Eigenschaft autocapitalizationType kann jederzeit geändert werden, auch wenn das Feld bereits aktiv ist. Die Änderung wird bei der nächsten Zeicheneingabe wirksam.
Ja, für Felder mit isSecureTextEntry = true setzt das System automatisch autocapitalizationType = .none. Dieses Verhalten kann nicht programmatisch geändert werden.
Ja, UITextView unterstützt autocapitalizationType vollständig. Dies ist besonders nützlich für mehrzeilige Felder, in denen der Modus .sentences am natürlichsten funktioniert.
Wenn ein Feld nicht als secureTextEntry markiert ist, aber für die Passworteingabe verwendet wird, kann die Autocapitalization das Passwort ändern. Deaktivieren Sie sie immer für Felder, bei denen die Groß-/Kleinschreibung eine Rolle spielt.
Im Simulator funktioniert die Autocapitalization über die Mac-Hardwaretastatur und kann sich anders verhalten. Testen Sie auf einem echten Gerät für korrektes Verhalten.
Zusammenfassung
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.
Lesen Sie auch