Ich habe eine Seite, die in ein UIWebView geladen wird (das 100% des Bildschirms einnimmt) auf einem iPad.
Wenn ich ein Textfeld berühre, positioniert die Seite das Textfeld an die richtige Stelle und die Tastatur beginnt hochzufahren, aber dann dreht es sich um und geht wieder nach unten und im Eingabefeld wird Unschärfe genannt.
Wenn ich diese Seite in Mobile Safari ausprobiere, kann die Tastatur erfolgreich bereitgestellt werden.
Ich kann nicht herausfinden, was die Regeln sind, damit die Tastatur erfolgreich zeigt und auf bleibt = und warum das für uiwwview anders als Safari ist.
All meine Forschung zu diesem Thema hat keine Antworten ergeben.
Ohne dass Code in Ihrer Frage gepostet wurde, spekuliere ich, dass das Zurückgehen der Tastatur nur auftritt, wenn das HTML-Textfeld vor dem letzten Aufruf von UIWebViewDelegate webViewDidFinishLoad:
Um dies zu testen, setzen Sie zuerst Ihre UIWebView.delegate
auf die UIViewController
, die sie besitzt (oder welches Objekt auch immer die UIWebView
besitzt). Implementieren Sie dann diese Delegiertenmethoden.
Führen Sie Ihre App aus und notieren Sie sich, wie oft webViewDidFinishLoad:
aufgerufen wird. (Wenn Ihre Webseite mehrere Frames enthält oder Dinge wie Google Analytics enthält, wird sie mehrmals aufgerufen.)
Berühren Sie das HTML-Textfeld, nachdem 'webViewDidFinishLoad:' zum letzten Mal aufgerufen wurde. Bleibt die Tastatur stehen? (Ich denke schon).
Wenn das klappt, versuchen Sie als Nächstes, vor dem letzten Aufruf von 'webViewDidFinishLoad:' etwas zu erfahren. Wird die Tastatur animiert und dann wieder heruntergefahren?