2015-08-06 11 views
6

Sto costruendo un'app per iOS utilizzando il framework Ionic. Quando uso select-elements, non ottengo l'intestazione con l'etichetta "Done" quando selezioni gli elementi nel menu su iOS nativo. Tuttavia verrà visualizzato quando utilizzo l'app in iOS/Safari. Screenshot e codice allegato. Qualsiasi input/soluzione su questo sarebbe molto apprezzato.HTML seleziona l'etichetta "Fine" non visualizzata su Ionic per iOS

Screenshots:

iOS Safari Screenshot iOS Safari Screenshot

iOS nativa/ionica Schermata iOS Native/Ionic Screenshot

Markup

+0

Eventuali duplicati di [SELEZIONA HTML Chrome su iOS non mostra "Done" opzione] (http://stackoverflow.com/questions/22960376/html-select-on-ios-chrome-doesnt-show -done-option) – you786

risposta

7

L'app Ionic contiene un codice predefinito in app.js che nasconde la barra della tastiera, è necessario commentare questa riga: cordova.plugins.Keyboard.hideKeyboardAccessoryBar (true);

Ottenere qualcosa di simile:

// 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); 

} 
+1

Fantastico! Grazie per quello! Molto apprezzato. Perché dovrei usarlo in primo luogo? – emccracken

+0

Bello! Non so davvero perché il progetto di Ionic sia arrivato con questa funzione hide attiva. – lucasbastianik

+7

Nella mia esperienza, commentarlo non lo ha tagliato. Ho dovuto cambiare il 'true' a' false' ed eseguirlo in questo modo. Quindi quei problemi insanguinati vanno via solo quando si esegue il seguente codice; cordova.plugins.Keyboard.hideKeyboardAccessoryBar (false); –

3

Per quanto riguarda commento di @ emccracken, according to the Ionic Team the reason for hideKeyboardAccessoryBar is ", perché le app native raramente hanno una barra accessary E 'un morto dare via che un app è costruito con tecnologia web e non è nativo. ".

È possibile visualizzare e nascondere la barra accessoria su richiesta che è explained a bit here. Prendendo i timeout $ dalla direttiva ha funzionato meglio per me. Ecco come appare il mio.

.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

Questo non funziona più negli ultimi 2 mesi. Il plug-in della tastiera di Ionic sovrascrive le modifiche dopo averlo fatto, quindi sei bloccato con una barra accessoria il 100% delle volte o senza una barra accessoria il 100% delle volte. È davvero una specie di stupido. –