Sorry if this question has been asked a million times. I’m using Ionic 7. An ion-search input box towards bottom of my page is always obscured by the soft keyboard on iOS when I give it focus. And often the submit button is obscured on other fields and won’t pull up. I have tried all the solutions I could find and can’t get anything to work. Is there an official solution for avoiding this problem?
The ion-searchbar component  is inside ion-item inside an ion-item-group. I’ve tried:
- Replacing ion-searchbar with ion-input
 
- Tried scrolling on focus, but can’t figure out for to make that work
 
- Adding lots of blank lines under my form input
 
Overall I am bummed for this 2nd class keyboard experience and wondering if there is a way for the app to have a first class experience, ie where the screen is pushed up by the keyboard, not overlaid.
I tried configuring the Capacitor Keyboard plugin to push the content up, which I assumed was the default behavior. Here is someone complaining about the behavior I actually want: javascript - keyboard pushes content upwards with ionic - Stack Overflow
But I don’t get that default push-up behavior, I get overlay. I am confused.
             
            
              
              
              
            
            
           
          
            
            
              Ionic has a special scroll assist utility that ensures ion-input and ion-textarea elements are not covered by the keyboard. We do not include ion-searchbar because that component is typically used at the top of the view outside of the scrollable content and is not covered by the keyboard as a result.
If you are unable to move the searchbar to the top of the view, my recommendation would be to listen for the Keyboard plugin’s lifecycle events and then apply a transform on the searchbar equal to the height of the keyboard:
const input = document.querySelector('ion-searchbar');
window.addEventListener('keyboardWillShow', (ev) => {
  const { keyboardHeight } = ev.detail;
  input.style.setProperty(
    'transform',
    `translate3d(0, ${keyboardHeight}px, 0)`
  );
});
window.addEventListener('keyboardDidHide', () => {
  input.style.removeProperty('transform');
});
             
            
              
              
              1 Like
            
            
           
          
            
            
              Thank you—I see so my problems begin by using the ion-searchbar at the bottom. I actually use it in three places stacked on top! The reason is that I have three input fields that need work as autocomplete lookup fields with a search left-embedded icon. Ok but let me trying giving that up for normal ion-input fields.
             
            
              
              
              
            
            
           
          
            
            
              If that does not work then a video/screenshot of the issue might help me give better recommendations.
             
            
              
              
              
            
            
           
          
            
            
              Works! Thank you very much.
             
            
              
              
              1 Like