HTML select “Done” label not showing on Ionic for iOS

后端 未结 3 1883
礼貌的吻别
礼貌的吻别 2021-01-05 00:18

I am building an iOS-app using the Ionic-framework. When I use select-elements, I do not get the header with the label \"Done\" when selecting items in the menu on iOS-nativ

相关标签:
3条回答
  • 2021-01-05 00:37

    The Ionic app contains a default code in app.js who hide the keyboard acessory bar, you need to comment this following line: cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);

    Getting something like this:

    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
    // for form inputs)
    if (window.cordova && window.cordova.plugins.Keyboard) {
      //cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
      cordova.plugins.Keyboard.disableScroll(true);
    
    }
    
    0 讨论(0)
  • 2021-01-05 00:42

    Regarding @emccracken's comment, according to the Ionic Team the reason for hideKeyboardAccessoryBar is "because native apps seldom have an accessary bar. It's a dead give away that an app is built with web tech and isn't native."

    You can show and hide the accessory bar on demand which is explained a bit here. Taking the $timeouts out of the directive worked better for me. Here's what mine looks like.

    .directive('select', function() {
      return {
        restrict: 'E',
        link: function(scope, element, attrs) {
          element.bind('focus', function(e) {
            if (window.cordova && window.cordova.plugins.Keyboard) {
              // console.log("show bar (hide = false)");
              cordova.plugins.Keyboard.hideKeyboardAccessoryBar(false);
            }
          });
          element.bind('blur', function(e) {
            if (window.cordova && window.cordova.plugins.Keyboard) {
              // console.log("hide bar (hide = true)");
              cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
            }
          });
        }
      };
    })
    
    0 讨论(0)
  • 2021-01-05 00:49

    If you still have this issue, my case was a keyboard plugin conflict between cordova-plugin-keyboard and cordova-plugin-ionic-keyboard.

    So check on config.xml to see if you have more than one plugin and if so remove with:

    cordova plugin remove [plugin-name]

    then install proper plugin:

    ionic cordova plugin add ionic-plugin-keyboard

    https://ionicframework.com/docs/native/keyboard/

    Then you will be able to use cordova.plugins.Keyboard.hideKeyboardAccessoryBar(false);

    Hope it helps.

    0 讨论(0)
提交回复
热议问题