2014-09-14 20 views
6

Używam tego samego kodu na urządzeniu iOS 7 i IOS 8 z odmiennych wynikówkeyboardWillShow w systemów iOS 8 z UIKeyboardWillShowNotification

otrzymał ekran z dwóch pól tekstowych

w iOS 7, jeżeli dotknę pierwsze pole keyboardWillShow jest wywoływana, ale jeśli dotknę drugiego pola, gdy klawiatura jest już wyświetlona, ​​nie jest wywoływana drugi raz.

w iOS 8 keyboardWillShow nazywa dwukrotnie

Czy to udokumentowane zachowanie?

+0

jest jednym z tych pole hasło? Może ten [wątek] (https://devforums.apple.com/message/1029338#1029338) pomaga. – dasdom

+0

@dasdom całkiem poprawne Wyłączyłem korektę i sprawdzanie pisowni w Konstruktorze interfejsów i nie było wywoływane dwa razy. Odpowiedz na pytanie i zaznaczę to jako poprawne. –

Odpowiedz

5

Powód jest różny w klawiaturze. Jeśli drugie pole jest polem hasła, oznacza to, że pod maską znajduje się inna klawiatura. Dlatego powiadomienie jest wysyłane dwa razy.

+1

Nie musi to być zmiana w polu z hasłem. Mój przeszedł z UITextField do UITextView, a jedyną różnicą było to, że ta pierwsza ma ustawienie Correction ustawione na "No", a ta ostatnia miała "Default". Zmieniłem "Nie" na "Domyślny" i teraz jest dobrze. – CyberMew

0

najlepiej jest słuchać keyboardWillChangeFrameNotification

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrameNotification:) name:UIKeyboardWillChangeFrameNotification object:nil]; 
+2

Właśnie próbowałem tego na iOS 9.1 Beta i obserwator "UIKeyboardWillChangeFrameNotification" jest wyzwalany za każdym razem, gdy wybierze się nowy UITextField, czy klawiatura jest już wyświetlana, czy nie. Zwróć uwagę, że mam 3 pola tekstowe i wszystkie używają różnych typów klawiatury (nazwa użytkownika, adres e-mail, hasło). Może jeśli wszystkie pola tekstowe używają dokładnie tej samej klawiatury, to obserwator jest wyzwalany tylko raz ... – Litome

+0

Zauważyłem, że też, musisz zdobyć koniec i zacząć ramkę i porównać, jeśli są one równe, jeśli tak, potencjalnie nie potrzebujesz zrobić cokolwiek –

+0

@ Litome Mam ten sam problem tutaj. Czy udało Ci się rozwiązać ten problem? –

Powiązane problemy