Utrzymuj pasek narzędzi dopasowany do klawiatury iPhone'a widoczny przez zmianę pierwszej odpowiedzi?

Używam metody opisanej przez Josha wto pytanie aby dodać pasek narzędzi do górnej części klawiatury iPhone'a. Zasadniczo chodzi o to:

Dodaj kontroler widoku jako obserwator dla powiadomieńUIKeyboardWillShowNotification iUIKeyboardWillHideNotification w swojej metodzie inicjalizacjiZa każdym razem, gdy te powiadomienia są publikowane, animuj pasek narzędzi na / poza ekranem wraz z klawiaturą

Mam także wiele UITextField na ekranie, z których wszystkie stają się pierwszymi odpowiedziami po wybraniu do edycji i rezygnacji z pierwszej odpowiedzi po zakończeniu edycji (użytkownik dotyka innego pola tekstowego, wyłącza dowolne pole tekstowe lub naciska „Gotowe” na klawiaturze - MamtextFieldShouldReturn: zastąpiony przezresignFirstResponder).

Mam jednak problem, ponieważ powiadomienia są publikowane za każdym razem, gdy przełączam się między polami tekstowymi. Na przykład, jeśli użytkownik edytuje pole tekstowe A, kończy je i stuka w pole tekstowe B, A rezygnuje z pierwszego odpowiadającego, a B z pierwszego. Jednak powoduje to również wysyłanie zarówno powiadomień „pokaże”, jak i „ukryje” do mojego kontrolera widoku.

Końcowym rezultatem tego wszystkiego jest to, że gdy pasek narzędzi pojawia się z klawiaturą dla pierwszego pola tekstowego i znika wraz z klawiaturą dla ostatniego pola tekstowego, wydaje się, że wsuwa się i wraca z klawiatury za każdym razem, gdy użytkownik przełącza się między tekstem pola.

Czy istnieje sposób, aby odpowiedzieć tylko na powiadomienia „pokaż, ukryj”, jeśli klawiatura jesttak właściwie pokaże się lub ukryje? Innymi słowy, jak mogę zignorować powiadomienia, które nie spowodują zmiany widocznego stanu klawiatury?

questionAnswers(2)

yourAnswerToTheQuestion