diff --git a/src/video/uikit/SDL_uikitviewcontroller.m b/src/video/uikit/SDL_uikitviewcontroller.m index 8668c4adad..c5b27c0700 100644 --- a/src/video/uikit/SDL_uikitviewcontroller.m +++ b/src/video/uikit/SDL_uikitviewcontroller.m @@ -554,6 +554,14 @@ static void SDLCALL SDL_HideHomeIndicatorHintChanged(void *userdata, const char - (void)textFieldTextDidChange:(NSNotification *)notification { + // When opening a password manager overlay to select a password and have it auto-filled, + // text input becomes stopped as a result of the keyboard being hidden or the text field losing focus. + // As a workaround, ensure text input is activated on any changes to the text field. + bool startTextInputMomentarily = !SDL_TextInputActive(window); + + if (startTextInputMomentarily) + SDL_StartTextInput(window); + if (textField.markedTextRange == nil) { NSUInteger compareLength = SDL_min(textField.text.length, committedText.length); NSUInteger matchLength; @@ -588,6 +596,9 @@ static void SDLCALL SDL_HideHomeIndicatorHintChanged(void *userdata, const char } committedText = textField.text; } + + if (startTextInputMomentarily) + SDL_StopTextInput(window); } - (void)updateKeyboard