Skip to content

Commit

Permalink
fix(ios): Allow keyboard accessory view to be toggled after initializ…
Browse files Browse the repository at this point in the history
…ation using `hideKeyboardAccessoryView` prop (#3341)
  • Loading branch information
amanharwara committed Apr 29, 2024
1 parent 7420ed8 commit b9e74d6
Showing 1 changed file with 18 additions and 1 deletion.
19 changes: 18 additions & 1 deletion apple/RNCWebViewImpl.m
Expand Up @@ -910,12 +910,14 @@ -(void)setKeyboardDisplayRequiresUserAction:(BOOL)keyboardDisplayRequiresUserAct

-(void)setHideKeyboardAccessoryView:(BOOL)hideKeyboardAccessoryView
{
_savedHideKeyboardAccessoryView = hideKeyboardAccessoryView;

if (_webView == nil) {
_savedHideKeyboardAccessoryView = hideKeyboardAccessoryView;
return;
}

if (_savedHideKeyboardAccessoryView == false) {
[self __addInputAccessoryView];
return;
}

Expand Down Expand Up @@ -945,6 +947,21 @@ -(void)setHideKeyboardAccessoryView:(BOOL)hideKeyboardAccessoryView
object_setClass(subview, newClass);
}

- (void)__addInputAccessoryView {
UIView* subview;

for (UIView* view in _webView.scrollView.subviews) {
if([[view.class description] hasSuffix:@"_SwizzleHelperWK"])
subview = view;
}

if(subview == nil) return;

Class newClass = subview.superclass;

object_setClass(subview, newClass);
}

// UIScrollViewDelegate method
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
Expand Down

0 comments on commit b9e74d6

Please sign in to comment.