I have a view with keyboard notifications such as keyboardWillShow
and keyboardWillHide
All the codes handles with the notification I use i
It is called twice on iOS 8 when a custom keyboard, like SwiftKey is being shown.
On the first call, it probably prepares to show, so CGSize keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
will have a keybaord height of 0.
The second call will have the correct keyboard height, so if you need to adjust content insets, you can check that the height of keyboard returned is > 0 before calculating your insets.
Also, it will be called whenever user changes keyboard.