Un moyen facile de désactiver un UITextField?

voix
42

Y at - il un moyen facile de désactiver un UITextFielddans le code?

Mon application a 12 UITextFieldqui sont tous activée par défaut, mais quand un changement est détecté dans le contrôle du segment Je veux désactiver certains des en UITextFieldfonction de ce que le segment des choix de l' utilisateur.

Juste besoin de savoir comment le désactiver ou rendre non modifiable?

Merci

Créé 01/03/2009 à 13:16
source utilisateur
Dans d'autres langues...                            


5 réponses

voix
98

En Objective-C:

textField.enabled = NO;

Dans Swift:

textField.isEnabled = false

Référence: UIControl.isEnabled

Créé 01/03/2009 à 13:31
source utilisateur

voix
27

Si vous voulez aussi indiquer que le champ de texte est désactivé, vous devez ajouter plus de code:

si vous utilisez UITextBorderStyleRoundedRect, vous ne pouvez griser du texte:

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

si vous utilisez un autre style, vous pouvez aussi gris sur fond:

textField.enabled = NO;
textField.backgroundColor = [UIColor lightGrayColor];
Créé 01/05/2012 à 09:56
source utilisateur

voix
10

Ce serait le plus simple de tous, lorsque vous plusieurs textfields aussi:

en viewDidLoad: (indiquer le délégué uniquement pour textfields qui ne devrait pas être modifiable.

self.textfield.delegate=self;

et insérer cette fonction de délégué:

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

C'est tout!

Créé 08/07/2013 à 18:40
source utilisateur

voix
1

Faire la catégorie sur UIView.

ajouter des méthodes suivantes dans cette catégorie.

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

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

puis il suffit d'appeler

yourTextField.disable();

En fait, vous pouvez utiliser en tout état que vous voulez.

Créé 02/09/2016 à 06:51
source utilisateur

voix
-1

Vous devez se conformer à UITextFieldDelegateet revenir falsedans cette méthode. De cette façon , le champ de texte est toujours sélectionnable, mais il n'est pas disponible pour le montage et le découpage

Code est à Swift 4

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
  return false
}
Créé 18/05/2018 à 12:40
source utilisateur

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