textFieldShouldBeginEditing wird nicht aufgerufen

8

Ich versuche, textFieldShouldBeginEditing zu verwenden, um zu verhindern, dass die Tastatur für eine benutzerdefinierte UITextField angezeigt wird. Ich implementiere alle UITextFieldDelegate Methoden. Aus irgendeinem Grund wird textFieldShouldBeginEditing jedoch nie aufgerufen.

Die folgenden Delegate-Methoden werden IMMER aufgerufen:

%Vor%

Die Ansicht ist folgendermaßen aufgebaut:

UIViewController , das eine Scrollansicht enthält. Abhängig vom Status der Ansicht enthält diese ScrollView eine UIView mit einer Liste von benutzerdefiniertem% ​​co_de%.

Ich verwende iOS 4.3.5 (8L1) auf diesem Gerät.

Irgendwelche Ideen?

Bearbeiten; einige Code-Schnipsel hinzugefügt:

UITextFields hat die folgende Schnittstelle

%Vor%

Wenn der UIViewController geladen ist, verbinde ich alle UITextFields mit

mit der Ansicht %Vor%

(Vereinfachte) Delegate-Implementierungen in AViewController

%Vor%

Benutzerdefiniert UIViewController code

Vereinfachte Implementierungsdatei -

%Vor%     
Charles 12.10.2011, 16:55
quelle

6 Antworten

13

Ist es möglich, dass textFieldShouldBeginEditing von der Standardimplementierung der Methode canBecomeFirstResponder aufgerufen wird?

Versuchen Sie, die Methode mit [super canBecomeFirstResponder] zu implementieren oder entfernen Sie sie einfach.

    
lluismontero 12.10.2011, 20:42
quelle
13

Haben Sie den UITextField-Delegaten auf "self" gesetzt?

    
lluismontero 12.10.2011 17:04
quelle
2

Für jeden, der hierher kommt und keine Lösung gefunden hat. Mein Problem war, dass ich das textField in IB erstellt habe und dann eine in meiner viewDidLoad zuweisen. Als ich die Instanziierung entfernte, funktionierte der Delegat korrekt, da er an den richtigen TF gebunden war.

%Vor%     
vinylDeveloper 13.02.2015 21:55
quelle
2

Ich habe auch auf das Problem hingewiesen, dass textFieldShouldEndEditing oder textFieldShouldReturn nicht aufgerufen wurde. Dies geschah nach dem Aktualisieren des Storyboards meiner App.

Die Delegate-Methoden wurden aufgerufen, wenn die UITextFields Teil der ViewController-Unterklasse waren.

Wurden sie jedoch innerhalb des ViewControllers in eine Scroll-Ansicht verschoben, wurden die Methoden nicht mehr aufgerufen.

Das Setzen ihrer App-Delegates auf self in ViewDidLoad hat dieses Problem behoben.

%Vor%     
Justin Domnitz 15.06.2015 20:03
quelle
0

Sie wissen nicht, ob beim Kopieren des Codes ein Tippfehler aufgetreten ist, aber der Methodenname ist falsch:

KORREKT - textFieldShouldBeginEditing

YOURS - textFieldShoulBeginEditing (fehlendes "d")

    
lluismontero 12.10.2011 17:39
quelle
0

In Swift-3 benötigt die folgende Methode "_" vor textField, damit diese Delegate-Methode aufgerufen wird. In meinem Fall hilft es mir.

%Vor%     
FARAZ 15.02.2017 11:35
quelle

Tags und Links