2013-04-22 13 views
7

Mam UIAlertView z UITextField. Połączyłem delegata UIAlertView i zwracam TAK lub NIE w alertViewShouldEnableFirstOtherButton: w zależności od tekstu w UITextField.Jak wykonać wywołanie UIAlertView `alertViewShouldEnableFirstOtherButton:` po wprowadzeniu zmian?

Potrzebuję programowo zmienić tekst pola tekstowego. Działa to zgodnie z oczekiwaniami.

Niestety, nie wiem, jak wywołać metodę UIAlertView w trybie delegowania alertViewShouldEnableFirstOtherButton:, więc włącza lub wyłącza drugi przycisk po zmianie tekstu pola tekstowego.

Myślałem, że rejestry UIAlertView są celem UITextField, więc próbowałem wysłać UIControlEventValueChanged z pola tekstowego. Nie działa.


Od ślad stosu zorientowali się metoda nazywa delegat z prywatnej metody UIAlertView _alertSheetTextFieldDidChange:.

Tak więc jeśli zmienię tekst po [self.currentAlert performSelector:@selector(_alertSheetTextFieldDidChange:) withObject:textField];, wywoływana jest metoda delegata, a stan włączenia przycisku zmienia się. Ale ponieważ jest to metoda prywatna, aplikacja prawdopodobnie zostanie odrzucona. Nie chcę tego ryzykować.


Czy istnieje czysty sposób na wywołanie alertu pod numerem alertViewShouldEnableFirstOtherButton:?

Odpowiedz

8

Byłem na dobrej drodze, wysyłając zdarzenie kontrolne. Właśnie wybrałem złe wydarzenie.

to będzie działać:

[textField sendActionsForControlEvents:UIControlEventEditingChanged]; 
+0

po prostu wpadł na ten problem, a także, i to odpowiedź prace i wydaje się być poprawny sposób to zrobić – Alex

Powiązane problemy