2013-04-06 16 views
7

Mam trzy pola tekstowe i chcę móc przesunąć kursor do następnego. Po osiągnięciu ostatniego klawisza klawiatura zostaje odrzucona. Ale nic nie działa dla mnie ... Oto przykład tego, co mam. Jednak nic się nie porusza i nic się nie dzieje po wybraniu następnego przycisku.Jak przenieść kursor UITextField do następnego pola tekstowego

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    if (textField == field1TextField) { 
     [textField resignFirstResponder]; 
     [field2TextField becomeFirstResponder]; 
    } 
    else if (textField == field2TextField) { 
     [textField resignFirstResponder]; 
     [field3TextField becomeFirstResponder]; 
    } 
    else if (textField == field3TextField) { 
     [textField resignFirstResponder]; 
    } 
    return YES; 
} 
+3

Czy jesteś pewien, że delegaci pola tekstowego są poprawnie ustawione? Czy ta metoda jest w ogóle wywoływana? – stevex

+0

Czy ta metoda jest wywoływana? Jeśli to zrobi ... a blok textField == field1TextField jest wywoływany .. a pole2TextField nie jest zerowe .. to wygląda na to, że powinno działać – stevex

+0

Skomentuj swoje pytanie! zapomniałem tego zrobić! sprawdzę to zaznacz! –

Odpowiedz

3

Obiekt, do którego jest przypisana ta metoda, powinien zostać ustawiony jako delegat pola tekstowego. Sprawdź to, ustawiając punkt przerwania w metodzie, aby sprawdzić, czy jest wywoływany, gdy myślisz, że jest.

Jeśli używasz stalówek lub scenorysów, zmiennymi instancji field... powinny być gniazda, które są prawidłowo podłączone. Jeśli są tworzone programowo, powinieneś upewnić się, że mają przypisane do nich obiekty. Sprawdź to, sprawdzając wartości tych zmiennych, gdy jesteś wewnątrz metody.

Nie trzeba wywoływać resignFirstResponder w innych urządzeniach kontrolnych przed wywołaniem becomeFirstResponder na innym.

+0

Dziękuję za odpowiedź –

Powiązane problemy