diff --git a/ios/Fabric/RNCSafeAreaProviderComponentView.mm b/ios/Fabric/RNCSafeAreaProviderComponentView.mm index f80078f..ee35c14 100644 --- a/ios/Fabric/RNCSafeAreaProviderComponentView.mm +++ b/ios/Fabric/RNCSafeAreaProviderComponentView.mm @@ -24,6 +24,15 @@ - (instancetype)initWithFrame:(CGRect)frame if (self = [super initWithFrame:frame]) { static const auto defaultProps = std::make_shared(); _props = defaultProps; + + [NSNotificationCenter.defaultCenter addObserver:self + selector:@selector(invalidateSafeAreaInsets) + name:UIKeyboardDidShowNotification + object:nil]; + [NSNotificationCenter.defaultCenter addObserver:self + selector:@selector(invalidateSafeAreaInsets) + name:UIKeyboardDidHideNotification + object:nil]; } return self; diff --git a/ios/RNCSafeAreaProvider.m b/ios/RNCSafeAreaProvider.m index e5b1cf4..9081326 100644 --- a/ios/RNCSafeAreaProvider.m +++ b/ios/RNCSafeAreaProvider.m @@ -10,6 +10,21 @@ @implementation RNCSafeAreaProvider { BOOL _initialInsetsSent; } +- (instancetype)init +{ + if ((self = [super init])) { + [NSNotificationCenter.defaultCenter addObserver:self + selector:@selector(invalidateSafeAreaInsets) + name:UIKeyboardDidShowNotification + object:nil]; + [NSNotificationCenter.defaultCenter addObserver:self + selector:@selector(invalidateSafeAreaInsets) + name:UIKeyboardDidHideNotification + object:nil]; + } + return self; +} + - (void)safeAreaInsetsDidChange { [self invalidateSafeAreaInsets];