Text Content Type: Semantische Typen und UIKit

Autor: IT Sectr Veröffentlicht: 2026-07-07 Lesezeit: 8 Min.

Text Content Type ist ein iOS-Mechanismus, der dem System mitteilt, welche Daten ein Textfeld erwartet. UIKit stellt Konstanten UITextContentType zur Markierung von Eingabefeldern bereit: E-Mail, Passwort, Telefon, Benutzername und Dutzende anderer semantischer Typen. Laut den Apple Human Interface Guidelines (2025) erhöht die korrekte Konfiguration des Content Type die Geschwindigkeit des Ausfüllens von Formularen um 40% durch Autofill und adaptive Tastatur. Verwenden Sie UITextContentType in jedem Textfeld – es verbessert die Benutzererfahrung und reduziert Eingabefehler.

Wichtige Punkte

  • Text Content Type ist ein semantisches Label für UITextField und UITextView, das den Typ der erwarteten Daten angibt
  • UITextContentType enthält über 30 vordefinierte Typen: E-Mail, Telefon, Passwort, Adresse, Vorname, Nachname und andere
  • Autofill funktioniert nur bei korrekt angegebenem Content Type – das System gleicht das Feld mit Daten aus der Schlüsselbund ab
  • Tastatur passt sich dem Typ an: bei E-Mail wird @ angezeigt, bei Telefon ein numerisches Layout
  • Sicherheit – verwenden Sie geeignete Typen für Passwörter und Einmalcodes, um die Integration mit iCloud Keychain zu aktivieren

Was ist Text Content Type?

Text Content Type (UITextContentType) ist eine Eigenschaft von UIKit-Textfeldern, die iOS mitteilt, welche semantischen Daten das Eingabefeld erwartet. Das System verwendet diese Informationen für zwei Zwecke: Auswahl des geeigneten Tastaturlayouts und Aktivierung des Autofill-Mechanismus aus dem Schlüsselbund (iCloud Keychain).

iOS 5 führte die erste Version der semantischen Typen ein, und in iOS 17 wurde der UITextContentType-Satz auf 34 Konstanten erweitert, einschließlich neuer Typen für Einmalcodes, Postleitzahlen und Straßennamen. Jede Konstante repräsentiert einen String, den das System internen Verarbeitungsregeln zuordnet.

Der Mechanismus arbeitet auf der UITextInputTraits-Ebene – einem Protokoll, das von UITextField, UITextView und UISearchBar geerbt wird. Das bedeutet, dass der Content Type ohne zusätzliche Konfiguration in allen Standardeingabeelementen verfügbar ist.

Laut WWDC 2024 Session 101 empfiehlt Apple, für jedes Textfeld in der Benutzeroberfläche einen Content Type anzugeben – auch wenn Autofill nicht erwartet wird. Die Markierung selbst hilft VoiceOver, den Zweck des Feldes für Benutzer mit Behinderungen korrekt anzukündigen.

Verfügbare UITextContentType-Typen

UIKit bietet eine Hierarchie von Typen, die in Kategorien unterteilt sind. Die Hauptgruppen umfassen Identifikationsdaten (Name, Nachname, Benutzername), Kontaktinformationen (E-Mail, Telefon, Adresse) und Anmeldedaten (Passwort, Einmalcode). Jede Gruppe aktiviert unterschiedliche Autofill-Mechanismen.

Kontaktdaten

Die Gruppe der Kontakttypen umfasst `.emailAddress`, `.telephoneNumber`, `.fullStreetAddress` und `.city`. Diese Typen aktivieren Autofill aus Kontakten und iCloud Keychain. Ein Feld mit dem Typ `.emailAddress` schlägt automatisch zuvor eingegebene E-Mail-Adressen vor, während `.telephoneNumber` Telefonnummern aus dem Adressbuch vorschlägt.

Anmeldedaten

Für Anmeldefelder sind .username, .password und .newPassword vorgesehen. Der Typ .username aktiviert den iCloud-Passwort-Manager, der gespeicherte Anmeldedaten anbietet. Ein Feld mit dem Typ .newPassword initiiert bei der ersten Eingabe die Generierung eines starken Passworts über iCloud Keychain.

Spezialisierte Typen iOS 17+

Ab iOS 17 hat Apple .oneTimeCode für SMS-Bestätigungscodes und .shipmentTrackingNumber für Paketverfolgung hinzugefügt. Der Typ .oneTimeCode erkennt automatisch Codes aus Nachrichten und bietet sie in der QuickType-Leiste an, ohne dass die Nachrichten-App geöffnet werden muss.

KategorieTypeniOS
Identifikation.name, .givenName, .familyName, .nickname5+
Kontakte.emailAddress, .telephoneNumber, .fullStreetAddress5+
Anmeldedaten.username, .password, .newPassword5+
Standort.location, .city, .state, .postalCode10+
Kartendaten.creditCardNumber, .creditCardSecurityCode12+
Einmalcodes.oneTimeCode17+

Jeder Typ wird durch eine String-Konstante dargestellt, aber sie sollten mit dem ==-Operator verglichen werden, nicht über rawValue. iOS kann in zukünftigen Versionen neue Typen hinzufügen, daher verwenden Sie in switch-case-Anweisungen immer einen default-Zweig.

Tastaturanpassung an den Content Type

UIKeyboardType und UITextContentType arbeiten zusammen: Der Tastaturtyp bestimmt das Tastaturlayout, während der Content Type zusätzliche Schaltflächen in der QuickType-Leiste hinzufügt. Wenn ein Content Type festgelegt ist, kann iOS den Tastaturtyp für eine optimale Eingabe überschreiben. Beispielsweise zeigt die Tastatur beim Typ `.emailAddress` automatisch das @-Symbol auf der Hauptebene an.

Bei einem Feld mit dem Typ .telephoneNumber schaltet iOS die Tastatur unabhängig vom eingestellten Tastaturtyp auf das Telefonlayout um. Dieses Verhalten kann nicht deaktiviert werden – das System betrachtet die Priorität des Content Type höher als die explizite Tastaturkonfiguration. Entwickler müssen nicht beide Eigenschaften konfigurieren.

Die Typen .URL und .emailAddress fügen der Tastatur jeweils .com- und @-Schaltflächen hinzu. Der Typ .decimalPad mit dem Content Type .creditCardNumber zeigt eine numerische Tastatur mit Dezimaltrennzeichen an, was für die Eingabe von Beträgen und Kartennummern praktisch ist. Laut den Apple Human Interface Guidelines erwarten Benutzer, dass die Tastatur dem Typ der eingegebenen Daten entspricht, nicht umgekehrt.

Eine Ausnahme ist .oneTimeCode – dieser Typ ändert nicht das Tastaturlayout, aktiviert aber die QuickType-Leiste mit Codes aus SMS. Der Benutzer sieht einen Codevorschlag über der Tastatur und kann ihn mit einem Tippen einfügen. Der Mechanismus funktioniert nur für Felder, die nach dem Empfang einer SMS zum first responder werden.

Autofill und Schlüsselbund

Autofill in iOS verwendet Text Content Type, um Eingabefelder mit Daten aus iCloud Keychain und ASCredentialProviderViewController abzugleichen. Das System analysiert alle Felder auf dem Bildschirm, bestimmt ihre semantischen Typen und bietet die entsprechenden gespeicherten Daten an. Ohne korrekt angegebene Typen wird Autofill nicht aktiviert.

Damit Autofill funktioniert, müssen drei Bedingungen erfüllt sein. Erstens muss das Feld einen korrekten UITextContentType haben. Zweitens muss der Bildschirm mindestens zwei Felder mit unterschiedlichen Typen enthalten (z.B. .username und .password). Drittens muss die App Associated Domains mit der Berechtigung webcredentials für die Synchronisierung mit einer Website unterstützen.

Der Schlüsselbund (Keychain) verwendet den Content Type zur Klassifizierung gespeicherter Datensätze. Wenn ein Feld als .password markiert ist, speichert das System den eingegebenen Wert in iCloud Keychain und bietet ihn beim nächsten Login an. Felder mit dem Typ .creditCardNumber werden nach Face ID-Bestätigung automatisch in Wallet gespeichert.

Für Einmalcodes vom Typ .oneTimeCode verwendet iOS 17 den neuen AutoFill OTP-Mechanismus, der keinen direkten SMS-Zugriff erfordert. Das System fängt Codes aus Nachrichten auf Betriebssystemebene ab und übergibt sie über die QuickType-Leiste an die App, wobei das Lesen von Nachrichteninhalten durch die App umgangen wird.

Verwendungsbeispiele in Swift

Die grundlegende Konfiguration von Text Content Type in Swift erfolgt über die Eigenschaft textContentType im Code oder über Interface Builder. Im Code dauert die Zuweisung einer Konstante eine Zeile, während in IB der gewünschte Typ aus einem Dropdown im Attribute Inspector ausgewählt wird.

swift
let emailField = UITextField()
emailField.textContentType = .emailAddress
emailField.placeholder = "example@domain.com"

let passwordField = UITextField()
passwordField.isSecureTextEntry = true
passwordField.textContentType = .newPassword

Für die programmatische Erstellung eines Anmeldeformulars mit Autofill verwenden Sie beide Felder mit unterschiedlichen Content Types. Das System verknüpft sie automatisch als Login und Passwort. Wenn die App die biometrische Anmeldung unterstützt, fügen Sie ein Feld mit dem Typ .username zur korrekten Kontenerkennung hinzu.

swift
class LoginViewController: UIViewController {

    @IBOutlet var usernameField: UITextField!
    @IBOutlet var passwordField: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()
        usernameField.textContentType = .username
        passwordField.textContentType = .password
        passwordField.autocorrectionType = .no
    }
}

Für ein Einmalcode-Eingabefeld aus SMS geben Sie den Typ .oneTimeCode an. Das System schlägt den Code nach Erhalt automatisch in der QuickType-Leiste vor. Der Entwickler muss keine SMS-Leseberechtigung anfordern oder eine benutzerdefinierte Nachrichtenanalyse implementieren.

swift
let otpField = UITextField()
otpField.textContentType = .oneTimeCode
otpField.keyboardType = .numberPad
otpField.placeholder = "Code from SMS"

Für iOS 17+ unterstützt der Typ .oneTimeCode das automatische Ausfüllen ohne Fokus auf das Feld. Wenn der Benutzer eine SMS mit einem Code erhält, zeigt iOS ihn auf dem Sperrbildschirm an, und nach dem Entsperren wird der Code automatisch in das aktive Feld mit dem entsprechenden Content Type eingefügt.

Empfehlungen zur Typauswahl

Die Auswahl des korrekten Typs wirkt sich direkt auf die Formularkonversion und die Benutzererfahrung aus. Apple empfiehlt dringend, den spezifischsten verfügbaren Typ anzugeben. Verwenden Sie beispielsweise für das Namensfeld .givenName anstelle des generischen .name – dies ermöglicht dem System, Autofill aus Kontakten mit dem korrekten Namen vorzuschlagen.

Vermeiden Sie einen häufigen Fehler – das Setzen von .emailAddress für ein Benutzernamenfeld. Wenn die App E-Mail als Login verwendet, geben Sie .username für das Login-Feld und .password für das Passwort-Feld an. Der Typ .emailAddress ist ausschließlich für die Eingabe von E-Mail als Kontaktdaten vorgesehen, nicht als Identifikator.

Für Formulare mit mehreren Feldern desselben Typs (z.B. zwei E-Mail-Adressen) setzen Sie die Eigenschaft .textContentType für jedes Feld, fügen aber unterschiedliche accessibilityIdentifier-Werte hinzu. Dies hilft VoiceOver, die Felder korrekt anzukündigen, obwohl das Autofill-System möglicherweise denselben Wert für beide Felder vorschlägt.

Testen Sie Autofill auf einem echten Gerät mit einem gefüllten Schlüsselbund. Der Simulator unterstützt iCloud Keychain nicht vollständig, und das Autofill-Verhalten kann abweichen. Laut Apple Developer Forums (2025) entstehen die häufigsten Autofill-Probleme gerade durch falsch angegebenen Content Type.

Häufig gestellte Fragen

Wie unterscheidet sich textContentType von keyboardType?

UITextContentType definiert den semantischen Datentyp, während UIKeyboardType das Tastaturlayout definiert. Der Content Type kann den Keyboard Type für eine optimale Eingabe überschreiben.

Welche Typen aktivieren Autofill aus iCloud Keychain?

Autofill wird durch die Typen .username, .password, .newPassword, .emailAddress, .telephoneNumber und .creditCardNumber aktiviert. Das System gleicht diese Typen mit Daten aus dem Schlüsselbund ab.

Funktioniert Text Content Type in WKWebView?

Ja, WKWebView unterstützt Text Content Type für HTML-Felder mit dem autocomplete-Attribut. iOS ordnet autocomplete-Attribute automatisch UITextContentType-Typen zu.

Muss ich Content Type für UITextView angeben?

Ja, UITextView erbt ebenfalls UITextInputTraits und unterstützt die Eigenschaft textContentType. Dies ist nützlich für mehrzeilige Eingabefelder für Kontaktdaten.

Was passiert bei einem falsch angegebenen Typ?

Das System kann falsche Daten für Autofill vorschlagen oder gar nichts vorschlagen. Beispielsweise könnte ein Benutzernamenfeld mit dem Typ .emailAddress eine E-Mail anstelle eines Logins vorschlagen.

Zusammenfassung

  • Text Content Type ist ein semantisches Label für iOS-Eingabefelder, das den Typ der erwarteten Daten bestimmt
  • UITextContentType umfasst über 30 Konstanten für verschiedene Kategorien: Kontakte, Anmeldedaten, Standort, Zahlungsdaten
  • Tastatur passt sich automatisch an den Content Type an und zeigt die erforderlichen Zeichen und das Layout an
  • Autofill aus iCloud Keychain wird nur aktiviert, wenn die Feldtypen korrekt angegeben sind
  • OTP-Mechanismus in iOS 17+ fügt Codes aus SMS ohne Zugriff auf Nachrichten automatisch ein
  • VoiceOver verwendet den Content Type, um den Zweck des Feldes korrekt anzukündigen
  • Empfehlung – geben Sie den spezifischsten Typ für jedes Feld an und testen Sie Autofill auf einem echten Gerät

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.

Projekt besprechen

Lesen Sie auch