Before iOS9, a second UIWindow (with window level above UIWindowLevelNormal) on top of key app window covers all windows including keyboard. The view hierarchy shows that the keyboard is in UITextEffectsWindow.
However, the keyboard in iOS9 is in another window UIRemoteKeyboardWindow that sits on top of all other windows. There does not seem to be a trivial way to set the custom UIWindow above the keyboard. A solution is to manually dismiss/present keyboard when showing/hiding the custom window.
Is it an intended change in iOS9 that keyboard should be above all windows?