modalitate ușoară de a dezactiva un UITextField?

voturi
42

Există o modalitate ușoară de a dezactiva un UITextFieldîn cod?

Aplicația mea are 12 , UITextFieldcare sunt pornite în mod implicit, dar atunci când o schimbare este detectată în controlul meu segment vreau să dezactivați o parte din UITextFieldfuncție de ceea ce Segment murături de utilizator.

Doar trebuie să știe cum să-l dezactivați sau să-l needitabil?

Mulțumiri

Întrebat 01/03/2009 la 13:16
sursa de către utilizator
În alte limbi...                            


5 răspunsuri

voturi
98

In Obiectiv-C:

textField.enabled = NO;

În Swift:

textField.isEnabled = false

Referință: UIControl.isEnabled

Publicat 01/03/2009 la 13:31
sursa de către utilizator

voturi
27

Dacă doriți, de asemenea, pentru a indica faptul că câmpul de text este dezactivat ar trebui să adăugați mai mult cod:

dacă utilizați UITextBorderStyleRoundedRect, puteți gri numai text:

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

dacă se utilizează orice alt stil, puteți, de asemenea, cu gri de fundal:

textField.enabled = NO;
textField.backgroundColor = [UIColor lightGrayColor];
Publicat 01/05/2012 la 09:56
sursa de către utilizator

voturi
10

Aceasta ar fi cea mai simplă dintre toate, atunci când vă mai multe prea Câmpuri de text:

în viewDidLoad: (stabilit delegatul numai pentru care nu ar trebui să Câmpuri de text fi editate.

self.textfield.delegate=self;

și inserați această funcție delegat:

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

Asta e!

Publicat 08/07/2013 la 18:40
sursa de către utilizator

voturi
1

Asigurați-vă categoria pe UIView.

se adaugă următoarele metode, în această categorie.

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

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

apoi apel doar

yourTextField.disable();

De fapt, puteți utiliza acest lucru pe orice vizualizare pe care doriți.

Publicat 02/09/2016 la 06:51
sursa de către utilizator

voturi
-1

Ar trebui să se conformeze UITextFieldDelegateși să se întoarcă falseîn această metodă. Astfel , câmpul de text este încă selectabil, dar nu este disponibil pentru editare și tăiere

Codul este în Swift 4

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
  return false
}
Publicat 18/05/2018 la 12:40
sursa de către utilizator

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