16

Wie kann ich benachrichtigt werden, wenn UITextFieldbecomeFirstResponder?wird benachrichtigt, wenn UITextField werdenFirstResponder

kann ich wie isFirstResponder überprüfen oder auf durch Ersthelfer werden becomeFirstResponder

Ich möchte ein Ereignis benachrichtigt oder handhaben, wenn ein Benutzer dieses Textfeld Ersthelfer machen.

Danke.

Antwort

30

Sie müssen das Textfeld des Delegierten und implementieren diese optionale Delegatmethode zu kommen:

- (void)textFieldDidBeginEditing:(UITextField *)textField; 
11

Neben der Umsetzung des UITextFieldDelegate Methode textFieldDidBeginEditing:, Sie für die UITextFieldTextDidBeginEditingNotification Benachrichtigung registrieren.

könnte die Benachrichtigungsmethode sein:

- (void)someTextFieldDidBeginEditing:(NSNotification *)notification { 
    UITextField *textField = (UITextField *)notification.object; 
} 
0

Für OSX Sie Nebenwirkungen bewusst Tasten sein sollen, wenn auf den NSControlTextDidBeginEditingNotification verlassen.

Wenn Sie mit der Bearbeitung beginnen, einige Tasten drücken und die Bearbeitung des Textfelds fortsetzen, erhalten Sie keine zweite NSControlTextDidBeginEditingNotification, wenn Sie mit der Bearbeitung fortfahren. Wenn dieses Verhalten ein Problem verursacht, könnte UITextFieldTextDidChangeNotification eine Alternative sein.

2

Der Delegierte ist definitiv der Weg zu gehen. Leider konnte ich das in meiner Situation nicht verwenden, da der Controller der Delegat meiner UITextField-Unterklasse war und ich den Platzhaltertext ändern musste. Stattdessen überschreibe ich die Methoden - (BOOL)canBecomeFirstResponder; & - (BOOL)resignFirstResponder;. Achten Sie darauf, Super zu rufen.

+0

Ja, Ihr Kommentar zu erinnern, zu rufen, super gelöst mein Problem. –

Verwandte Themen