destacando el text dentro del campo de text

Quiero que el text dentro del campo de text se resalte cuando lo presiono.

Quiero que se elimine el text original en el momento en que alguien toque la numeración. Intenté usar clearButtonMode, pero como el tamaño de mi campo de text es muy pequeño, el ícono de la cruz ocupa por completo el campo de text.

¿Alguna idea de cómo lograr esto?

Esto se puede lograr

(void)textFieldDidBeginEditing:(UITextField *)iTextField { [iTextField selectAll:self]; } 

Necesita resaltar usted mismo. Tu podrías intentar:

  • cambiar la fuente del campo de text (más grande, más audaz, diferente color)
  • superponiendo una UIView transparente sobre el campo de text.
  • cambiando el background del campo de text
  • cambiar el estilo de borde

hay muchas opciones …

EDITAR: en respuesta a su pregunta, para borrar el campo del valor anterior cada vez que comience la edición en su campo de text, configure su object para que se ajuste al protocolo UITextFieldDelegate e implemente este método:

 - (void)textFieldDidBeginEditing:(UITextField *)textField { textField.text = nil; } 

La forma más fácil de resaltar el text sobre el tapping del campo de text es simplemente subclass UITextField, anula turnFirstResponder y selecciona todo el text allí.

Si Seleccionar todo: no siempre funciona, aquí hay una solución:

 - (void)textFieldDidBeginEditing:(UITextField *)textField { [textField performSelector:@selector(selectAll:) withObject:textField afterDelay:0.f]; } 

Si aún desea poder usar otras funciones de delegado en el ViewController, le recomiendo que agregue esto:

 override weak var delegate: UITextFieldDelegate? { didSet { if delegate?.isKindOfClass(YourTextField) == false { // Checks so YourTextField (self) doesn't set the textFieldDelegate when assigning self.delegate = self textFieldDelegate = delegate delegate = self } } } // This delegate will actually be your public delegate to the view controller which will be called in your overwritten functions private weak var textFieldDelegate: UITextFieldDelegate? class YourTextField: UITextField, UITextFieldDelegate { init(){ super.init(frame: CGRectZero) self.delegate = self } func textFieldDidBeginEditing(textField: UITextField) { textField.performSelector(Selector("selectAll:"), withObject: textField) textFieldDelegate?.textFieldDidBeginEditing?(textField) } } 

De esta manera, su controller de vista no necesita saber que ha sobregrabado al delegado y puede implementar las funciones UITextFieldDelegate en su controller de vista.

 let yourTextField = YourTextField() yourTextField.delegate = self