Warum wird die textFieldShouldReturn-Funktion nicht aufgerufen?

9

Die Funktion textFieldShouldReturn wird überhaupt nicht aufgerufen: Es gibt keine Fehler, aber die Tastatur reagiert überhaupt nicht.

Mein Fall unterscheidet sich von Wie Tastatur zu verbergen in schnellem Drücken der Return-Taste? wie in meinem Fall passiert überhaupt nichts und andere Fälle sind in Objective-C.

Hier ist mein Code:

%Vor%

textField ist eine Quelle für ein Textfeld in meinem Storyboard. Ich probierte auch self.endEditing anstelle von resignFirstResponder .

    
GJZ 22.05.2015, 21:51
quelle

2 Antworten

27

Der Rest dieser Antwort ist immer noch sehr nützlich, und ich werde es dort lassen, da es anderen Fragestellern helfen kann ... aber hier habe ich das offensichtliche Problem mit diesem konkreten Beispiel übersehen ...

Wir rufen resignFirstResponder nicht für das Textfeld auf. Wir rufen es auf dem View-Controller an. Wir müssen es im Textfeld aufrufen, also ändern Sie Ihren Code wie folgt:

%Vor%

A UITextField ruft nur die Eigenschaft textFieldShouldReturn für das Objekt auf, das sein Delegat ist.

Wir können das programmatisch beheben, indem wir eine Methode viewDidLoad hinzufügen, um Folgendes festzulegen:

%Vor%

Aber wir können das auch über das Storyboard zur Build-Zeit einrichten.

Klicken Sie mit der rechten Maustaste auf das Textfeld, um zu überprüfen, ob der Delegat festgelegt wurde oder nicht:

Wenn dieser Kreis neben delegate nicht gefüllt ist, haben wir den Delegierten für unser UITextField noch nicht festgelegt.

Um den Delegaten festzulegen, bewegen Sie den Mauszeiger über diesen Kreis. Es wird in ein Pluszeichen geändert. Klicken Sie nun auf den Ansichtscontroller, an den Sie das Textfeld delegieren möchten (den Ansichtscontroller, in dem das Textfeld enthalten ist), und ziehen Sie ihn.

Wenn Sie den View-Controller ordnungsgemäß als Delegat angemeldet haben, sollte dieses Menü wie folgt aussehen:

    
nhgrif 22.05.2015, 21:54
quelle
0

Ich bin in einem Swift 4 Udemy-Kurs angemeldet und der Kursleiter hat gesagt, dass ich die UITextFieldDelegate-Klasse für den ViewController zusätzlich zu Cntrl hinzufügen soll - indem ich vom textField zur ViewController-Schaltfläche ziehe und den Delegaten auswähle.

Importieren Sie UIKit

%Vor%     
user3174956 27.12.2017 22:42
quelle

Tags und Links