Enkel måte å deaktivere en UITextField?

stemmer
42

Er det en enkel måte å deaktivere en UITextFieldi koden?

Min app har 12 UITextFieldsom er slått på som standard, men når en endring er oppdaget i min Segment kontroll Jeg ønsker å deaktivere noen av de UITextFieldavhengig av hva Segment bruker plukker.

Trenger bare å vite hvordan du deaktiverer den eller gjøre den ikke-redigerbart?

Takk

Publisert på 01/03/2009 klokken 12:16
kilden bruker
På andre språk...                            


5 svar

stemmer
99

I Objective-C:

textField.enabled = NO;

I Swift:

textField.isEnabled = false

Annonse: UIControl.isEnabled

Svarte 01/03/2009 kl. 12:31
kilden bruker

stemmer
28

Hvis du også ønsker å vise at tekstfeltet er deaktivert du bør legge mer kode:

hvis du bruker UITextBorderStyleRoundedRect, kan du bare grå ut tekst:

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

hvis du bruker en annen stil, kan du også grå ut bakgrunnen:

textField.enabled = NO;
textField.backgroundColor = [UIColor lightGrayColor];
Svarte 01/05/2012 kl. 08:56
kilden bruker

stemmer
10

Dette ville være den enkleste av alt, når du flere textfields også:

i viewDidLoad: (sett delegat bare for textfields som ikke skal redigeres.

self.textfield.delegate=self;

og sette inn denne delegat funksjon:

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

Det er det!

Svarte 08/07/2013 kl. 17:40
kilden bruker

stemmer
1

Gjør kategori på UIView.

legge til følgende metoder i denne kategorien.

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

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

så bare ring

yourTextField.disable();

Egentlig kan du bruke denne på en visning som du ønsker.

Svarte 02/09/2016 kl. 06:51
kilden bruker

stemmer
-2

Du bør samsvare med UITextFieldDelegateog gå tilbake falsei denne metoden. På denne måten tekstfeltet er fortsatt velges, men det er ikke tilgjengelig for redigering og klipping

Kode er i Swift 4

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
  return false
}
Svarte 18/05/2018 kl. 12:40
kilden bruker

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