Łatwy sposób wyłączyć UITextField?

głosy
42

Czy istnieje prosty sposób wyłączyć UITextFieldw kodzie?

Moja aplikacja ma 12 UITextField, że wszystkie są włączone domyślnie, ale gdy zostanie wykryta zmiana w moim Kontroli segmentów chcę wyłączyć niektóre z UITextFieldzależności od tego, co segmencie wybiera użytkowników.

Po prostu trzeba wiedzieć jak go wyłączyć lub sprawiają, że nie można edytować?

Dzięki

Utwórz 01/03/2009 o 13:16
źródło użytkownik
W innych językach...                            


5 odpowiedzi

głosy
98

W celu C:

textField.enabled = NO;

W Swift:

textField.isEnabled = false

Numer referencyjny: UIControl.isEnabled

Odpowiedział 01/03/2009 o 13:31
źródło użytkownik

głosy
27

Jeśli chcesz, aby wskazać, że pole tekstowe jest wyłączona należy dodać więcej kodu:

w przypadku korzystania UITextBorderStyleRoundedRect można się tylko szary tekst:

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

w przypadku korzystania z jakiegokolwiek innego stylu, można również szary z tła:

textField.enabled = NO;
textField.backgroundColor = [UIColor lightGrayColor];
Odpowiedział 01/05/2012 o 09:56
źródło użytkownik

głosy
10

To byłoby najprostsze wszystkim, kiedy zbyt wiele Pola tekstowe:

w viewDidLoad: (ustawić delegata tylko dla pól tekstowych, które nie powinny być edytowalne.

self.textfield.delegate=self;

i wstawić tę funkcję delegata:

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

To jest to!

Odpowiedział 08/07/2013 o 18:40
źródło użytkownik

głosy
1

Dokonaj kategorię na UIView.

dodaj następujące metody w tej kategorii.

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

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

Następnie wystarczy zadzwonić

yourTextField.disable();

Właściwie, to można użyć na dowolnym widoku, który chcesz.

Odpowiedział 02/09/2016 o 06:51
źródło użytkownik

głosy
-1

Powinien spełniać UITextFieldDelegatei powrócić falsew tej metodzie. W ten sposób pole tekstowe wciąż jest wybierana, ale nie jest ono dostępne do edycji i cięcia

Kod jest w Swift 4

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
  return false
}
Odpowiedział 18/05/2018 o 12:40
źródło użytkownik

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