¿Manera fácil de deshabilitar un UITextField?

votos
42

¿Hay alguna manera fácil de desactivar un UITextFieldcódigo?

Mi aplicación tiene 12 UITextFieldque están todos activados de forma predeterminada, pero cuando se detecta un cambio en mi Control de segmento, deseo desactivar algunos de los que UITextFielddepende del segmento que elija el usuario.

¿Solo necesita saber cómo desactivarlo o hacerlo no editable?

Gracias

Publicado el 01/03/2009 a las 13:16
fuente por usuario
En otros idiomas...                            


5 respuestas

votos
98

En Objective-C:

textField.enabled = NO;

En Swift:

textField.isEnabled = false

Referencia: UIControl.isEnabled

Respondida el 01/03/2009 a las 13:31
fuente por usuario

votos
27

Si usted también quiere indicar que el campo de texto está deshabilitada se debe añadir más código:

si se utiliza UITextBorderStyleRoundedRect, sólo se puede mostrar en gris texto:

textField.enabled = NO;
textField.textColor = [UIColor lightGrayColor];

si se utiliza cualquier otro estilo, también se puede mostrar en gris de fondo:

textField.enabled = NO;
textField.backgroundColor = [UIColor lightGrayColor];
Respondida el 01/05/2012 a las 09:56
fuente por usuario

votos
10

Este sería el más simple de todos, cuando usted múltiples campos de texto también:

en viewDidLoad (pon el delegado sólo para los campos de texto que no deben ser editables.

self.textfield.delegate=self;

e insertar esta función delegada:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
return NO;
}

¡Eso es!

Respondida el 08/07/2013 a las 18:40
fuente por usuario

votos
1

Hacer categoría en UIView.

añadir siguientes métodos en esa categoría.

-(void)disable {
    self.alpha = 0.5;
    self.userInteractionEnabled = FALSE;
}

-(void)enable {
    self.alpha = 1.0;
    self.userInteractionEnabled = TRUE;
}

a continuación, sólo llamar

yourTextField.disable();

En realidad, puede utilizar esto en cualquier vista que desea.

Respondida el 02/09/2016 a las 03:51
fuente por usuario

votos
-1

Usted debe cumplir con UITextFieldDelegatey volver falseen este método. De esta manera el campo de texto sigue siendo seleccionable, pero no está disponible para la edición y corte

Es el código de 4 Swift

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
  return false
}
Respondida el 18/05/2018 a las 09:40
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more