Bir UITextField devre dışı bırakmak için kolay yolu?

oy
42

Bir devre dışı bırakmak için kolay bir yol var mı UITextFieldkodda?

Benim app 12'dir UITextFieldtümü varsayılan olarak açıktır, ancak bir değişiklik benim Segment Kontrol tespit edildiğinde ben bazılarını devre dışı bırakmak istediğiniz UITextFieldneyi Segment kullanıcı alır bağlı.

Sadece devre dışı bırakabilir ve düzenlenemeyen nasıl bilmek gerekir?

Teşekkürler

Oluştur 01/03/2009 saat 13:16
kaynak kullanıcı
Diğer dillerde...                            


5 cevaplar

oy
98

Objective-C ise:

textField.enabled = NO;

Swift in:

textField.isEnabled = false

Referans: UIControl.isEnabled

Cevap 01/03/2009 saat 13:31
kaynak kullanıcı

oy
27

Ayrıca metin alanı, daha fazla kod eklemek gerekir devre dışı olduğunu belirtmek isterseniz:

UITextBorderStyleRoundedRect kullanıyorsanız, sadece metin dışında gri edebilirsiniz:

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

Başka stilini kullanarak, sen de arka planı grileştirebilir edebilirsiniz:

textField.enabled = NO;
textField.backgroundColor = [UIColor lightGrayColor];
Cevap 01/05/2012 saat 09:56
kaynak kullanıcı

oy
10

Bu, tüm en basit olurdu, ne zaman birden textfields çok:

viewDidLoad: (sadece düzenlenebilir olmamalı textfields için temsilci olarak ayarlayın.

self.textfield.delegate=self;

ve bu temsilci fonksiyonu ekleyin:

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

Bu kadar!

Cevap 08/07/2013 saat 18:40
kaynak kullanıcı

oy
1

UIView kategorisini olun.

bu kategorideki yöntemlerle aşağıdakileri ekleyin.

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

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

o zaman sadece çağrı

yourTextField.disable();

Aslında İstediğiniz herhangi görünümde kullanabilirsiniz.

Cevap 02/09/2016 saat 06:51
kaynak kullanıcı

oy
-1

Sen uygun olmalıdır UITextFieldDelegateve iade falsebu yöntemde. Bu şekilde metin alanı halen seçilebilir, ancak düzenleme ve kesme için kullanılamaz

Kod Swift 4 içindedir

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
  return false
}
Cevap 18/05/2018 saat 12:40
kaynak kullanıcı

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