diff --git a/Libraries/Text/RCTTextView.m b/Libraries/Text/RCTTextView.m index d32463333..84e83214f 100644 --- a/Libraries/Text/RCTTextView.m +++ b/Libraries/Text/RCTTextView.m @@ -48,6 +48,14 @@ _jsRequestingFirstResponder = NO; } +- (void)didMoveToWindow +{ + if (_jsRequestingFirstResponder) { + [self becomeFirstResponder]; + [self reactDidMakeFirstResponder]; + } +} + @end @implementation RCTTextView diff --git a/React/Modules/RCTUIManager.m b/React/Modules/RCTUIManager.m index 033df4de6..10ee2152d 100644 --- a/React/Modules/RCTUIManager.m +++ b/React/Modules/RCTUIManager.m @@ -1032,8 +1032,9 @@ RCT_EXPORT_METHOD(focus:(nonnull NSNumber *)reactTag) [self addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary *viewRegistry) { UIView *newResponder = viewRegistry[reactTag]; [newResponder reactWillMakeFirstResponder]; - [newResponder becomeFirstResponder]; - [newResponder reactDidMakeFirstResponder]; + if ([newResponder becomeFirstResponder]) { + [newResponder reactDidMakeFirstResponder]; + } }]; }