diff --git a/modules/juce_gui_basics/native/juce_ios_FileChooser.mm b/modules/juce_gui_basics/native/juce_ios_FileChooser.mm index 28bb6904a9..f3b50115e8 100644 --- a/modules/juce_gui_basics/native/juce_ios_FileChooser.mm +++ b/modules/juce_gui_basics/native/juce_ios_FileChooser.mm @@ -131,6 +131,16 @@ public: ~Native() override { exitModalState (0); + + // Our old peer may not have received a becomeFirstResponder call at this point, + // so the static currentlyFocusedPeer may be null. + // We'll try to find an appropriate peer to focus. + + for (auto i = 0; i < ComponentPeer::getNumPeers(); ++i) + if (auto* p = ComponentPeer::getPeer (i)) + if (p != getPeer()) + if (auto* view = (UIView*) p->getNativeHandle()) + [view becomeFirstResponder]; } void launch() override