2016-08-05 16 views

Antwort

0

Ich benutze Handsontable Version 0.25.1, aber ich glaube, die Situation auf dem neuesten Release immer noch das gleiche ist.

Meine Erfahrung ist nur mit iPad-Gerät (iOS 9); Ich kann nicht über alle mobilen Geräte sprechen.

Ich fand das Rendering akzeptabel. Aber wenn du auf eine Zelle tippst, passiert nichts, was eher einschränkend ist! Ich habe gerade zwei kleine Änderungen zu korrigieren:

all dieses Recht unten in handsontable.full.js Tracing, die Logik in onCellMouseDown() ist Test für event.button === 0 (dh linke Maustaste) zum Erkennen der Doppelklick Einrichtung zum Starten des mobilen Text aktivieren Editor. Auf einem Touch-Gerät rufen sie explizit ihre onMouseDown/Move/Up() von ihrem onTouchStart/Move/End(), die Maus Ereignisse die event Struktur für das Touch-Ereignis erhalten. Berührungsereignisse 'event Struktur hat jedoch kein button Mitglied, so dass undefined ist, verursacht schlechtes Verhalten.

Die direkte Einstellung der übergebenen event.button = 0 vor der Übergabe an die Maus Ereignishandler löst dies. Setzen Sie in Zeile:

event.button = 0; // set as left mouse button 

in onTouchStart() [vor dem Aufruf zu onMouseDown(event), um die Linie 1326] & onTouchEnd() [vor onMouseUp(event) rufen, um die Linie 1368].

Wenn Sie nun in eine Zelle tippen, können Sie sie bearbeiten. Es bringt ihre MobileTextEditor. Was ich aus mehreren Gründen nicht mochte, einschließlich der Tatsache, dass es oft hinter der Bildschirmtastatur erscheint, so dass der Benutzer es nicht einmal weiß, dass es da ist! Ich änderte ihre Handsontable.TextCell [um die Linie 4346], so dass die editor: Zeile liest jetzt:

editor: (isMobileBrowser() && Handsontable.useMobileEditor) ? getEditorConstructor('mobile') : getEditorConstructor('text'), // only use mobile editor if explicitly called for 

So ist es das Standard-in-Place-Texteditor verwendet, die ich lieber, es sei denn, Sie hot.updateSettings({useMobileEditor: true}) gehen.