Snadný způsob, jak zakázat UITextField?

hlasů
42

Existuje jednoduchý způsob, jak zakázat UITextFieldv kódu?

Moje aplikace je 12 UITextField, které jsou všechny standardně zapnutá, ale když se zjistí změna v mém řízení segmentu chci vypnout některé z UITextFieldzávislosti na tom, Segment uživatelů výběry.

Jen je třeba vědět, jak jej vypnout nebo jej nelze upravit?

dík

Položena 01/03/2009 v 13:16
zdroj uživatelem
V jiných jazycích...                            


5 odpovědí

hlasů
98

V Objective-C:

textField.enabled = NO;

V Swift:

textField.isEnabled = false

Reference: UIControl.isEnabled

Odpovězeno 01/03/2009 v 13:31
zdroj uživatelem

hlasů
27

Pokud chcete také ukázat, že textové pole je zakázáno, měli byste přidat další kód:

Pokud používáte UITextBorderStyleRoundedRect můžete šedá pouze text:

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

Pokud používáte jakýkoli jiný styl, můžete také zašednout pozadí:

textField.enabled = NO;
textField.backgroundColor = [UIColor lightGrayColor];
Odpovězeno 01/05/2012 v 09:56
zdroj uživatelem

hlasů
10

To by bylo nejjednodušší ze všech, když jste několik TextováPole příliš:

V viewDidLoad: (nastavení delegáta pouze na TextováPole, které by neměly být editovatelné.

self.textfield.delegate=self;

a vložit tuto funkci delegáta:

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

A je to!

Odpovězeno 08/07/2013 v 18:40
zdroj uživatelem

hlasů
1

Udělat kategorii na UIView.

přidejte následující metody v dané kategorii.

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

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

Potom stačí zavolat

yourTextField.disable();

Ve skutečnosti, můžete použít na libovolném pohledu, který chcete.

Odpovězeno 02/09/2016 v 06:51
zdroj uživatelem

hlasů
-1

Ty by měly odpovídat UITextFieldDelegatea vrátit se falsev této metodě. Tímto způsobem textové pole je stále volit, ale není k dispozici pro editaci a řezání

Kód je v Swift 4

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
  return false
}
Odpovězeno 18/05/2018 v 12:40
zdroj uživatelem

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