I'm handling keyboard frame changes with UIKeyboardWillShowNotification and UIKeyboardWillHideNotification. When user opens, hides keyboard or switching keyboards by pressing on the "globe" key, everything works fine - methods called correctly. But if user long-presses on globe and selects keyboard that is higher than current (for example, English keyboard switching to Emoji keyboard), method UIKeyboardWillShowNotification not called. So new keyboard covers 40-50 px of UI.
This happens only when switching from lower to higher keyboard and only on iOS 11.
How to handle keyboard switching in iOS 11 the right way?
Update: Found the same issue in Apple Contacts app (while creating or editing contact) and Calendar app (while creating new event) in simulator (don't have iOS 11 on real device).