2013-06-21 10 views
7

To powinno być proste, ale staje się bólem głowy. Mam widok z UITextField, w którym użytkownik wpisuje wyszukiwanie tekstu i kliknięć. Wyskakuje inny kontroler widoku i rezygnuję z pierwszej odpowiedzi na polu tekstowym, zanim zniknie pierwszy widok. Gdy drugi widok zostanie odrzucony, pierwszy widok automatycznie sprawi, że pole tekstowe ponownie stanie się pierwszą odpowiedzią i nie znajdę sposobu na jego powstrzymanie. Czy ktokolwiek ma pojęcie, jak mogę zablokować klawiaturę, gdy odrzucam drugi widok?UITextField staje się pierwszym respondentem, gdy widok staje się widoczny, ale nie chcę tego do

Próbowałem odrzucićFirstResponder w viewWillAppear, bez efektu. Próbowałem to samo w viewDidAppear, ale klawiatura wyskakuje i natychmiast odrzuca to, co jest niewygodne.

Doceniam każdą pomoc.

+3

Czy możesz dodać kod? – ggrana

+0

"Rezygnuję z pierwszej odpowiedzi na polu tekstowym, zanim zniknie pierwszy widok." Kiedy dokładnie mówisz pole tekstowe, aby zrezygnować z pierwszej odpowiedzi? W jakiej metodzie? –

+0

Podaję pierwszą odpowiedź w widoku Widok z góry, a zobaczysz klawiaturę, która zniknie zanim drugi widok stanie się widoczny, ale kiedy odrzucę drugi widok, znika, wtedy animacja klawiatury zaczyna się u dołu ekranu. – SeanT

Odpowiedz

5

Znalazłem poprawkę, ale nie jest ona zbyt dobra.

Znaleziono informację, że komunikat CanBecomeResponder został przekazany do pola tekstowego zaraz po viewWillAppear i przed viewDidAppear.

Ustawiłem wartość BOOL w viewDidAppear na YES i użyłem tej wartości w metodzie textField:shouldBeginEditing. Zasadniczo, jeśli viewDidAppear nie został jeszcze wywołany, textField:shouldBeginEditing powracał NIE.

+0

Nadal nie jestem pewien, dlaczego to był problem, ale twoje rozwiązania są w zasadzie tym, co zrobiłem, aby to naprawić. Ustawiam flagę w 'viewDidAppear' i usuwam ją w' viewDidDisappear' i używam jej do określenia, czy pole tekstowe powinno stać się aktywne. – SeanT

Powiązane problemy