2008-11-26 10 views
128

¿Cómo se agrega ese pequeño botón "X" en el lado derecho de un UITextField que borra el texto? No puedo encontrar un atributo para agregar este subcontrol en Interface Builder en el iPhone OS 2.2 SDK.Agregar el botón "Borrar" a un iPhone UITextField

Nota: En Xcode 4.xy posterior (iPhone 3.0 SDK y posterior), puede hacerlo en Interface Builder.

Respuesta

272

Este botón es una superposición integrada proporcionada por la clase UITextField, pero a partir del SDK de iPhone OS 2.2, no hay forma de configurarlo a través de Interface Builder. Tienes que habilitarlo programáticamente.

Añadir esta línea de código en algún lugar (viewDidLoad, por ejemplo):

myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing; 

ACTUALIZACIÓN: La última versión de Xcode IB no admite esta propiedad.

+2

- Hola. ¿Puedo editar el tamaño de clearButtonMode en textField? – NiKKi

32

puede agregar botón personalizado clara y controlar el tamaño y cada cosa que utiliza este:

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]; 
38

También puede establecer esto directamente desde la interfaz del constructor bajo el inspector Atributos.

enter image description here

Tomado de XCode 5,1

+1

Tenga en cuenta que la pregunta específicamente sobre el SDK 2.2 y las notas de que esta opción está disponible en el Interface Builder en versiones posteriores. –

25

Swift 3:

textField.clearButtonMode = UITextFieldViewMode.WhileEditing 

o incluso más corto:

textField.clearButtonMode = .whileEditing 
+0

Fix enum type. No debe comenzar desde la letra mayúscula. –

6

Objetivo C:

self.txtUserNameTextfield.myUITextField.clearButtonMode = UITextFieldViewModeWhileEditing; 

Swift:

txtUserNameTextfield.clearButtonMode = UITextFieldViewMode.WhileEditing; 
4

esto no funciona, haga como yo:

rápida:

customTextField.clearButtonMode = UITextFieldViewMode.Always 

customTextField.clearsOnBeginEditing = true; 

func textFieldShouldClear(textField: UITextField) -> Bool { 
    return true 
} 
4

En Xcode 8 (8A218a):

Swift:

textField.clearButtonMode = UITextFieldViewMode.whileEditing; 

La "W" pasó de mayúscula a sin mayúscula "w".

-2

En Xcode Versión 8.1 (8B62) se puede hacer directamente en el Inspector de Atributos. Seleccione el campo textField y luego elija la opción adecuada del cuadro desplegable Clear Button, que se encuentra en Attributes Inspector.

Cuestiones relacionadas