2014-09-18 16 views
5

mam zainstalowane Swift Keyboard w moich 5s telefonów z iOS 8.Jak uzyskać rozmiar klawiatury innej firmy w systemie iOS 8?

Oryginalny sposób (Objective-C) do uzyskania wielkości klawiatura działa tylko z klawiatury systemowej, na przykład:

- (void)keyboardWillShow:(NSNotification *)notification 
{ 
    CGSize keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; 
} 

Jeśli używam Swift Keyboard ... keyboardSize.height ma wartość zero. Jak uzyskać rozmiar klawiatury innej firmy w systemie iOS 8?

Dzięki.

+0

Czy kiedykolwiek znalazłeś odpowiednie rozwiązanie? Poniższa odpowiedź nie działa z moją sprawą. Używam już 'UIKeyboardFrameEndUserInfoKey', aby uzyskać KB rect. – Hemang

Odpowiedz

8

Myślę, że to dlatego, że uzyskujesz rozmiar przed wyświetleniem klawiatury.

spróbować wymienić:

objectForKey:UIKeyboardFrameBeginUserInfoKey 

Z:

objectForKey:UIKeyboardFrameEndUserInfoKey 

To działa na mnie z SwiftKey!

+3

To pasuje do moich własnych badań. Zauważyłem również, że SwiftKey wysyła 3 zdarzenia w show, z końcową wysokością ustawioną na 0, następnie wysokością klawiatury, a następnie wysokością klawiatury + powierzchnią autouzupełniania. Mój kod nie oczekiwał 3 zdarzeń UIKeyboardWillShowNotification z rzędu o różnych wysokościach, więc potrzebowałem pewnych korekt. – w0mbat

+1

To nie działa dla mnie, już używam 'UIKeyboardFrameEndUserInfoKey', aby uzyskać poprawne KB. W inny sposób? – Hemang

Powiązane problemy