2012-01-03 13 views
11

W mojej aplikacji na iPada umieszczam powiadomienie na klawiaturze, które przeniesie popover na określoną wysokość nad klawiaturą. Działa to dobrze z normalną klawiaturą. Ale potem w iOS 5, jeśli użytkownik wybierze klawiaturę Split, popover będzie zachowywał się niepoprawnie. Skąd mogę wiedzieć, czy użytkownik wybrał klawiaturę dzieloną, aby ustawić wysokość popover zgodnie z wyświetlaną klawiaturą?Jak sprawdzić, czy wyświetlana klawiatura jest podzielona czy normalna?

+1

Rozwiązany! Żadne powiadomienie nie zostanie wysłane, gdy klawiatura zostanie podzielona. –

+0

hi ganesh, mam ten sam problem z klawiaturą. Układam widok według tego, czy klawiatura jest widoczna czy nie. Zaczynasz z podzieloną klawiaturą, nawet gdy otworzę tablicę na klucze Nie otrzymuję żadnego powiadomienia. Jak rozwiązałeś to? czy mógłbyś podzielić się mną tak samo. – CKT

+0

Cześć Chaithanya Kiran, Nie musisz zmieniać układu widoków, gdy klawiatura jest podzielona, ​​coz, podzielona klawiatura pojawia się po bokach i zajmuje bardzo mało miejsca na ekranie, jeśli naprawdę się chowa, wtedy jest to kwestią do myślenia :( –

Odpowiedz

12

Chodzi o to, aby tego nie przemyśleć. Nic się nie zmieniło. Jeśli klawiatura znajdzie się w zadokowanej pozycji u dołu ekranu, pojawi się powiadomienie "pokaż". Jeśli opuszcza zadokowaną pozycję u dołu ekranu, otrzymasz powiadomienie "ukryj". Tak właśnie stało się przed iOS 5.

Jedyna różnica polega na tym, że zamiast opuszczać zadokowaną pozycję, ponieważ porusza się poza ekranem, może opuścić zadokowaną pozycję, ponieważ użytkownik ją oddokował. Nadal będziesz miał "hide", więc możesz przenieść swój interfejs z powrotem do swojej pozycji podstawowej. Nie musisz wiedzieć, że klawiatura jest teraz oddokowana (chociaż możesz się przekonać, że nie jest ona poza ekranem UIKeyboardDidChangeFrameNotification, jeśli naprawdę chcesz). Powodem, dla którego nie musisz wiedzieć, jest to, że kiedy klawiatura jest oddokowana/podzielona, ​​użytkownik może być proaktywny i poruszać klawiaturą, jeśli jest to przeszkodą dla czegoś, co musi być widoczne.

W ten sposób cały stary kod sprzed systemu iOS 5 działa poprawnie. To wszystko jest bardzo sprytne.

+0

Cześć Ganesh, dziękuję za odpowiedź, ale mam problem. Kiedy klawiatura jest widoczna/ukrywa się, układam moją pozycję UITextField nad tablicą na klucze, ale w szczególnej sytuacji, kiedy klawiatura jest widoczna teraz moje pole tekstowe w górę, w tym przypadku, jeśli użytkownik podzieli tablicę na klucze i zamknie tablicę z kluczami, moje pole tekstowe nadal będzie na górze, ponieważ nie otrzymuję powiadomienia z klawiatury, co zrobić w tej sytuacji? – CKT

+0

Cześć chaithanya kiran T, kiedy użytkownik przełącza się z normalnej na podzieloną klawiaturę, wywoływane jest powiadomienie KeyboardWillHide. Tutaj możesz ponownie ustawić ramkę dla TextField. –

+0

Witaj, Ganesh, jesteś rytuałem, ale to do iOS 5.0. Uaktualniłem iPada do iOS 5.1, w którym po podzieleniu klawiatury nie wywołujemy powiadomienia KeyboardWillHide. Aplet sprawił, że obsługa klawiatury z podzielonym klawiszem była bardziej skomplikowana :(:(:( – CKT

Powiązane problemy