Comment savoir quand UITextView est devenu le premier répondeur

Comment gérer quand uitextview est devenu le premier répondeur. J'ai du text en mode text et je veux quand la vue est active vouloir effacer le text. Comment puis je faire ça? Merci d'avance

Vous pouvez certainement utiliser une méthode UITextViewDelegate de:

 - (BOOL)textViewShouldBeginEditing:(UITextView *)textView 

Renvoie juste YES et intercepte à l'intérieur de cette méthode. Vous pouvez également le faire pour UITextFields avec UITextFieldDelegate et:

 - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 

J'espère que cela pourra aider.

Les réponses précédentes font du bon travail pour UITextBox, mais si vous avez une class personnalisée dérivée de NSResponder et avez besoin de savoir quand elle devient premier répondeur:

 -(BOOL) becomeFirstResponder { // Your stuff here return YES; } 

Comme ci-dessus, vous pouvez redéfinir getFirstResponder mais notez que vous devez appeler l'implémentation de la superclass. Si vous ne le faites pas, des choses telles que le fait d'ouvrir le keyboard dans un champ de text ne fonctionneront pas. c'est à dire

 override func becomeFirstResponder() -> Bool { if super.becomeFirstResponder() { // set up the control state return true } return false } 

textViewShouldBeginEditing se triggers réellement avant que la vue de text ne devienne le premier répondeur.

textViewDidBeginEditing se triggersra une fois que la vue de text deviendra le premier répondeur et sera le meilleur endroit pour exécuter du code qui doit savoir ce qu'est le textview actif.

Si vous n'êtes pas vraiment inquiet de savoir quel champ est actif et si vous voulez effacer le text une fois que le champ est sélectionné, vous pouvez utiliser l'une ou l'autre des fonctions.

EDIT: les mêmes methods sont disponibles pour les champs de text.