First Responder: Was es ist, Zweck und Eingabeobjekt

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

First Responder ist das UIResponder-Objekt in iOS, das als erstes Berührungsereignisse, Tastendrücke, Schüttelgesten und Menübefehle empfängt. Zu jedem Zeitpunkt kann nur ein Objekt in der Anwendung first responder sein. Die Zuweisung erfolgt automatisch (wenn ein UITextField den Fokus erhält) oder programmatisch über die Methode becomeFirstResponder. Laut der Apple Developer Documentation (2026) kann ein Objekt nur dann first responder werden, wenn seine Methode canBecomeFirstResponder true zurückgibt, was diesen Mechanismus explizit und kontrollierbar macht.

Wichtige Punkte

  • First Responder ist der Hauptempfänger von Eingabeereignissen, der automatisch oder über becomeFirstResponder zugewiesen wird.
  • Nur ein Objekt in der Anwendung kann zu einem bestimmten Zeitpunkt first responder sein.
  • canBecomeFirstResponder muss true zurückgeben, damit ein Objekt first responder werden kann.
  • ResignFirstResponder entfernt den First-Responder-Status und blendet die Tastatur für UITextField aus.
  • UITextField und UITextView werden first responder, wenn sie den Fokus vom Benutzer erhalten.

Was ist First Responder

First Responder ist das UIResponder-Objekt, das aktuell Eingabeereignisse in einer iOS-Anwendung empfängt. Das System leitet alle Berührungsereignisse, Tastendrücke, Bewegungsereignisse (Gerät schütteln) und Aktionsnachrichten (z. B. Aufrufen eines Kontextmenüs) an dieses Objekt weiter.

Das First-Responder-Konzept ist das erste Glied in der Responder Chain. Wenn der first responder ein empfangenes Ereignis nicht behandelt, wird es automatisch an das nächste Objekt in der Kette weitergegeben. Dadurch wird sichergestellt, dass ein Ereignis nicht verloren geht, sondern nacheinander allen potenziellen Behandlern in der Hierarchie angeboten wird.

Laut Apple ist der First-Responder-Status eng mit UIResponder und seinen Methoden canBecomeFirstResponder und becomeFirstResponder verbunden. Standardmäßig gibt UIView nur für bestimmte Unterklassen true zurück — UITextField, UITextView, UISearchBar. Andere Views, einschließlich einfacher UIView, geben false zurück, was eine versehentliche Zuweisung verhindert.

Wie First Responder zugewiesen wird

Die Zuweisung des first responders kann auf zwei Arten erfolgen: automatisch, wenn der Benutzer ein UITextField berührt (das System ruft intern becomeFirstResponder auf), oder programmatisch, wenn der Entwickler explizit die Methode becomeFirstResponder auf einem beliebigen UIResponder-Objekt aufruft.

Vor der Zuweisung überprüft iOS canBecomeFirstResponder. Wenn die Methode false zurückgibt, wird der becomeFirstResponder-Aufruf ignoriert und das Objekt wird nicht first responder. Dies ist ein Schutzmechanismus, der die Zuweisung von Objekten verhindert, die nicht bereit sind, Ereignisse zu behandeln — z. B. ausgeblendete oder deaktivierte Oberflächenelemente.

swift
class CustomTextField: UITextField {
    override var canBecomeFirstResponder: Bool {
        return super.canBecomeFirstResponder
    }
}

// Programmatische Zuweisung
textField.becomeFirstResponder()

// Prüfen, ob first responder
if textField.isFirstResponder {
    print("TextField ist jetzt first responder")
}

Wenn ein neuer first responder zugewiesen wird, ruft iOS automatisch resignFirstResponder beim vorherigen auf. Dadurch wird garantiert, dass im System immer nur ein Objekt mit First-Responder-Status existiert. Wenn das neue Objekt nicht first responder werden kann (canBecomeFirstResponder = false), behält das alte seinen Status.

First Responder und die Tastatur

Die iOS-Tastatur erscheint auf dem Bildschirm genau aufgrund des First-Responder-Mechanismus. Wenn ein UITextField oder UITextView first responder wird, zeigt das System automatisch die Tastatur an, die mit dem aktuellen keyboardType dieses Feldes verbunden ist. Wenn der first responder resigniert, wird die Tastatur ausgeblendet.

Dieses Verhalten ist ein wichtiger UX-Mechanismus in iOS: Der Benutzer berührt ein Eingabefeld — die Tastatur erscheint; drückt die Rücktaste oder berührt ein anderes Feld — die Tastatur wechselt oder wird ausgeblendet. Der Entwickler kann dies über UIResponder-Methoden sowie über inputView und inputAccessoryView steuern, um die Standardtastatur durch eine benutzerdefinierte zu ersetzen.

Input Accessory View ist ein zusätzliches Bedienfeld über der Tastatur, das ebenfalls an den first responder gebunden ist. Zum Beispiel ein Bedienfeld mit den Schaltflächen Weiter, Zurück, Fertig zur Navigation zwischen Eingabefeldern. Es wird zusammen mit der Tastatur ein- und ausgeblendet und synchronisiert sich mit dem First-Responder-Status.

EreignisFirst-Responder-StatusTastatur
UITextField berührenWird first responderErscheint
Rücktaste drückenBleibt oder resigniertBleibt oder wird ausgeblendet
Anderes Feld berührenWechselt zum neuen FeldWechselt
resignFirstResponder aufrufenEntferntWird ausgeblendet
App in den HintergrundResigniert automatischWird ausgeblendet

Resign First Responder

ResignFirstResponder ist eine UIResponder-Methode, die den First-Responder-Status von einem Objekt entfernt. Nach dem Aufruf hört das Objekt auf, Eingabeereignisse zu empfangen, und die Tastatur (falls sie aktiv war) wird ausgeblendet. Die Methode gibt einen Bool zurück — true, wenn das Resign erfolgreich war.

Entwickler rufen resignFirstResponder oft als Reaktion auf das Drücken der Fertig-Schaltfläche, das Berühren eines leeren Bereichs des Bildschirms (view.endEditing) oder beim Verlassen des Bildschirms auf. view.endEditing(true) ist eine bequeme Möglichkeit, für alle untergeordneten Textfelder gleichzeitig zu resignieren: Es durchläuft die gesamte Ansichtshierarchie und ruft resignFirstResponder beim aktuellen first responder auf.

swift
// Resign bei Done-Taste
@objc func doneButtonTapped() {
    textField.resignFirstResponder()
}

// Resign bei Berührung leerer Fläche
override func touchesBegan(
    _ touches: Set<UITouch>,
    with event: UIEvent?
) {
    view.endEditing(true)
}

// Resign für alle Formularfelder
func validateAndSubmit() {
    view.endEditing(true)
    // Formular-Übermittlungslogik
}

Es gibt Situationen, in denen resignFirstResponder false zurückgeben kann. Dies geschieht, wenn das Objekt die Methode überschrieben und das Entfernen des Status explizit verboten hat. Beispielsweise kann ein Textfeld in der Validierung vorübergehend das Resign blockieren, um Datenverlust zu verhindern. In solchen Fällen warten Sie, bis die Validierung abgeschlossen ist, und resignieren Sie dann zwangsweise.

Überprüfung und Überwachung von First Responder

UIResponder stellt die Eigenschaft isFirstResponder (schreibgeschützt) bereit, die true zurückgibt, wenn das angegebene Objekt aktuell der first responder ist. Dies ist nützlich für bedingte Logik — z. B. um eine Aktion zu vermeiden, wenn ein Textfeld fokussiert ist und der Benutzer Daten eingibt.

iOS bietet keine integrierte API zum Abrufen des aktuellen first responders auf Anwendungsebene. Entwickler erreichen dies, indem sie die Ansichtshierarchie mit der UIResponder-Methode durchlaufen. Apple empfiehlt eine schwache Referenz (weak reference) auf den first responder, die über KVO oder Delegate aktualisiert werden kann.

swift
// Erweiterung zum Finden von first responder
extension UIView {
    var firstResponder: UIResponder? {
        guard isFirstResponder else {
            return subviews.compactMap { $0.firstResponder }.first
        }
        return self
    }
}

// Verwendung
if let current = view.firstResponder {
    print("Current first responder: \(current)")
}

Zur Überwachung von Änderungen des first responders können Sie UIResponder.keyboardWillShowNotification und UIResponder.keyboardWillHideNotification abonnieren — sie zeigen indirekt an, dass ein Textobjekt first responder geworden oder nicht mehr first responder ist. Es gibt jedoch kein direktes Abonnement für isFirstResponder-Änderungen; stattdessen werden KVO oder benutzerdefinierte Delegate verwendet.

First Responder und benutzerdefinierte Views

Benutzerdefinierte Views können first responder werden, wenn sie canBecomeFirstResponder überschreiben und true zurückgeben. Dies ist für Komponenten erforderlich, die Tastatur- oder physikalische Tastenereignisse empfangen müssen — z. B. benutzerdefinierte Game-Controller oder Code-Editoren auf Basis von UITextView.

Bei der Erstellung eines benutzerdefinierten first responders ist es wichtig, die Barrierefreiheit zu beachten: VoiceOver und Switch Control verlassen sich für die Navigation auf die korrekte Zuweisung des first responders. Wenn eine benutzerdefinierte Ansicht first responder wird, muss sie das UIAccessibility-Protokoll korrekt implementieren und assistiven Technologien ihren Status melden.

Für benutzerdefinierte Eingabe (z. B. einen Barcodescanner oder ein digitales Tastenfeld) überschreiben Sie die Eigenschaft inputView — geben Sie eine benutzerdefinierte UIView zurück, die anstelle der Standardtastatur angezeigt wird, wenn diese Ansicht first responder ist. Ebenso fügt inputAccessoryView ein Bedienfeld über der Tastatur hinzu.

Häufig gestellte Fragen

Was ist First Responder in iOS?

First Responder ist das UIResponder-Objekt, das aktuell Eingabeereignisse (Berührung, Tasten, Beschleunigungssensor) empfängt. Es wird über becomeFirstResponder zugewiesen und muss true von canBecomeFirstResponder zurückgeben. Nur ein Objekt kann in einer Anwendung first responder sein.

Wie macht man UITextField ohne Berührung zum first responder?

Rufen Sie textField.becomeFirstResponder() programmatisch auf, z. B. in viewDidAppear. Stellen Sie sicher, dass textField nicht ausgeblendet ist, userInteractionEnabled = true und isEnabled = true. Wenn sich das Feld in einer UITableView oder UICollectionView befindet, stellen Sie sicher, dass die Zelle auf dem Bildschirm sichtbar ist.

Wie blende ich die Tastatur aus, indem ich außerhalb des Textfelds tippe?

Fügen Sie der Hauptansicht einen UITapGestureRecognizer hinzu und rufen Sie in dessen Handler view.endEditing(true) auf. Dies findet automatisch den aktuellen first responder und ruft resignFirstResponder auf. Alternativ überschreiben Sie touchesBegan in UIViewController mit einem Aufruf von endEditing.

Warum gibt becomeFirstResponder false zurück?

becomeFirstResponder gibt false zurück, wenn canBecomeFirstResponder false zurückgibt, die Ansicht ausgeblendet ist, nicht in der Fensterhierarchie ist oder userInteractionEnabled = false. Überprüfen Sie auch, ob die Ansicht zum Fenster hinzugefügt wurde — eine nicht auf dem Bildschirm befindliche Ansicht reagiert nicht auf becomeFirstResponder.

Wie ermittle ich, welches Objekt aktuell first responder ist?

iOS bietet keine globale API dafür. Verwenden Sie eine rekursive Durchquerung der Ansichtshierarchie über eine UIView-Erweiterung, die isFirstResponder bei jeder Unteransicht überprüft. Eine Alternative ist das Speichern einer schwachen Referenz auf den letzten first responder im AppDelegate und deren Aktualisierung über UITextField-Delegaten.

Zusammenfassung

  • First Responder ist das einzige UIResponder-Objekt, das in iOS Eingabeereignisse empfängt. Es ist das erste Glied in der Responder Chain.
  • becomeFirstResponder weist das Objekt als first responder zu, aber nur, wenn canBecomeFirstResponder true zurückgibt — dies ist ein expliziter Schutzmechanismus des Systems.
  • resignFirstResponder entfernt den First-Responder-Status; bei Textfeldern wird dadurch automatisch die Tastatur ausgeblendet.
  • UITextField und UITextView werden bei Fokussierung first responder und können programmatisch über becomeFirstResponder auf einem anderen Feld geändert werden.
  • view.endEditing(true) ist eine bequeme Möglichkeit, für alle untergeordneten Responder-Objekte in der Ansichtshierarchie zu resignieren.
  • Benutzerdefinierte Views können durch Überschreiben von canBecomeFirstResponder für spezifische Eingabeszenarien first responder werden.
  • Die Überwachung des first responders erfolgt durch rekursives Durchlaufen der Unteransichten oder indirekt über Tastaturbenachrichtigungen.

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