2015-08-06 7 views
6

Buduję aplikację iOS przy użyciu Ionic-framework. Kiedy używam select-elements, nie otrzymuję nagłówka z etykietą "Done" podczas wybierania elementów w menu na iOS-native. Jednak pojawi się, gdy użyję aplikacji w iOS/Safari. Zrzuty ekranu i dołączony kod. Wszelkie dane wejściowe/rozwiązania na ten temat byłyby bardzo doceniane.HTML wybierz "Gotowe" etykieta nie wyświetla się na Ionic dla iOS

ekranu:

iOS Safari Screenshot iOS Safari Screenshot

iOS Native/Ionic Zrzut iOS Native/Ionic Screenshot

Markup

<label class="item item-input item-select"> 
    <div class="input-label"> 
     Bostadstyp 
    </div> 
    <select ng-change="addParam('objectType', selectedHouseType)" ng-model="selectedHouseType" ng-options="houseType.id as houseType.label for houseType in houseTypes"></select> 
</label> 
+0

Możliwy duplikat [HTML SELECT na iOS Chrome nie pokazuje "Gotowe" opcja] (http://stackoverflow.com/questions/22960376/html-select-on-ios-chrome-doesnt-show -done-option) – you786

Odpowiedz

7

Aplikacja jonowa zawiera domyślny kod w app.js, który ukrywa pasek acessory klawiatury, musisz skomentować następujący wiersz: cordova.plugins.Keyboard.hideKeyboardAccessoryBar (true);

się coś takiego:

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

Awesome! Dziękuję za to! Naprawdę doceniony. Dlaczego miałbym go w ogóle używać? – emccracken

+0

Nice! Naprawdę nie wiem, dlaczego projekt Ionic przyszedł z tą aktywną funkcją ukrywania. – lucasbastianik

+7

Z mojego doświadczenia wynika, że ​​komentowanie go nie zmniejszyło. Musiałem zmienić "true" na "false" i uruchomić to w ten sposób. Więc te krwawe problemy znikną dopiero, gdy uruchomisz poniższy kod; cordova.plugins.Keyboard.hideKeyboardAccessoryBar (false); –

3

Odnośnie komentarza @ emccracken, w according to the Ionic Team the reason for hideKeyboardAccessoryBar is „, ponieważ rodzime aplikacje rzadko mają accessary poprzeczkę To ślepy oddać, że aplikacja jest zbudowany z internetowej tech i nie jest rodzimy. . "

Możesz pokazać i ukryć pasek akcesoriów na żądanie, który jest explained a bit here. Usunięcie limitów czasu z dyrektywy było dla mnie lepsze. Oto, jak wygląda moja.

.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

To nie działa już od 2 miesięcy. Wtyczka klawiatury Ionic zastępuje twoją zmianę po jej wykonaniu, więc albo utkniesz z paskiem akcesoriów w 100% czasu, albo bez paska akcesoriów w 100% przypadków. To naprawdę głupie. –

Powiązane problemy