198 votes

Ajout du bouton "Clear" à un iPhone UITextField

Comment pouvez-vous ajouter ce petit bouton "X" sur le côté droit d'un UITextField qui efface le texte? Je ne trouve pas d'attribut permettant d'ajouter ce sous-contrôle dans Interface Builder dans le SDK iPhone OS 2.2.

Remarque: dans les SDK iPhone 3.0 et versions ultérieures, vous pouvez le faire dans Interface Builder.

376voto

Kristopher Johnson Points 34554

Ce bouton est une incrustation intégrée fournie par la classe UITextField, mais à partir du kit de développement logiciel (SDK) pour iPhone OS 2.2, il est impossible de le définir via Interface Builder. Vous devez l'activer par programme.

Ajoutez cette ligne de code quelque part (viewDidLoad, par exemple):

 myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing;
 

UPDATE: La dernière version de Xcode IB prend en charge cette propriété.

66voto

Nicholas Harlen Points 481

Vous pouvez également définir cela directement à partir d'Interface Builder sous l'inspecteur d'attributs.

entrez la description de l'image ici

Tiré de XCode 5.1

35voto

Hossam Ghareeb Points 1202

vous pouvez ajouter un bouton d'effacement personnalisé et contrôler la taille et tout en utilisant ceci:

 UIButton *clearButton = [UIButton buttonWithType:UIButtonTypeCustom];
[clearButton setImage:img forState:UIControlStateNormal];
[clearButton setFrame:frame];
[clearButton addTarget:self action:@selector(clearTextField:) forControlEvents:UIControlEventTouchUpInside];

textField.rightViewMode = UITextFieldViewModeAlways; //can be changed to UITextFieldViewModeNever,    UITextFieldViewModeWhileEditing,   UITextFieldViewModeUnlessEditing
[textField setRightView:clearButton];
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X