11
votes

Définissez le contenu UiWebView pour ne pas vous déplacer lorsque le clavier est affiché

J'ai fait assez de recherches assez grandes mais je n'ai pas trouvé de réponse à ma question.

Supposons que j'ai un webview dans lequel j'ai quelques champs de texte, certains d'entre eux sont placés au bas de l'écran afin que lorsque le clavier apparaisse, il doit masquer ce champ. Une fois que le clavier apparaît, le contenu de webview glisse en place afin de rendre les champs visibles. Le problème est que je ne veut pas veux que le contenu glisse.

question est: Comment puis-je désactiver cette fonctionnalité de webview ou faire en sorte que le contenu ne défile pas. ???

Merci, toute aide serait appréciée.


0 commentaires

4 Réponses :


0
votes

Je pense Cette classe devrait aider à votre problème. Il fait défiler le contenu, donc si vous avez un champ de texte au bas de l'écran, il le déplacera au-dessus du clavier.


1 commentaires

Je suis désolé mais vous n'avez pas compris ma question. Je veux que mon Textfield reste sur sa place, ne pas monter.



0
votes

J'ai trouvé la solution pour moi. Je viens de le faire défiler à nouveau après avoir défilé. D'abord, j'ai attrapé une notification uikeyboardwillshownotification en ajoutant un observateur à celui-ci [[NOTIFICATIONCENTER DEFAULTERCENTER] Addobserver: Sélecteur auto-sélecteur: @Selector (KeyboardWillshow :) Nom: UikeyboardWillshownotification Object: nil]; Puis implémentez la méthode: xxx

Ce n'est pas ce que je n'ai pas demandé exactement mais m'a aidé à résoudre mon problème.

Merci.


0 commentaires

19
votes

Si vous souhaitez désactiver tous les défilements, y compris le défilement automatique lorsque vous naviguez entre les champs de formulaire, régler webview.scrollview.scrollenabled = No code> ne couvre pas tout. Qui arrête le défilement normal du robinet et de la glisser-glisser, mais pas le défilement automatique de la visionnalisation de champs de champs automatique lorsque vous naviguez autour d'un formulaire Web.

Aussi, surveille pour UIKEYBoardWillshOntification code> vous permettra d'éviter tout défilement lorsque le clavier apparaît em>, mais cela ne fera rien si le clavier est déjà en place de l'édition d'un champ de formulaire différent. P>

Voici comment empêcher tout défilement en trois étapes simples: p>

1) Après avoir créé l'UIWebView, désactivez le défilement normal: strong> p> xxx pré>

2) puis enregistrez votre contrôleur d'affichage comme Le délégué du ScrollView: strong> p> xxx pré>

(et assurez-vous d'ajouter code> à votre classe @interface code > Définition Pour prévenir les avertissements du compilateur) P>

3) Capture et annuler tous les événements de défilement: strong> p>

// UIScrollViewDelegate method
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    scrollView.bounds = myWebView.bounds;
}


6 commentaires

Merci d'informations intéressantes, mais ce n'est pas en fait de la question, à côté de cela que j'ai déjà résolu de JavaScript.


J'ai constaté que c'est vraiment une réponse à votre question.Je préférez-vous que vous postiriez votre propre solution.


Cette solution résout mon cas, j'aime la phrase "Scrollage de campagne dans le champ"


Merci! Travaillé à mes fins. Une question, Richard, pouvez-vous fournir des détails sur la façon d'ajouter UiscrollviewDelegate au @interface?


@Garnik Quelle est votre solution par JavaScript? Pourriez-vous poster votre réponse?


@Verseus, je suis vraiment désolé, mais j'ai posté ceci il y a 7 ans et je n'ai plus accès à ce code. De plus, je ne me souviens pas comment j'ai résolu ce problème. De plus, pour une raison quelconque, j'ai utilisé une autre solution plus tard :(



0
votes

À l'origine, je cherchais à arrêter mon webview à partir de zoomer lors d'un champ de saisie (dans mon cas, la section Commentaires) était axée sur. La vue entière ferait zoomer automatiquement et tout mettre de gars. J'ai réussi à le faire avec cela et, en même temps, j'ai reçu le webview pour arrêter de faire défiler et hors du chemin du clavier logiciel également:

//Stop the webview from zooming in when the comments section is used.
UIScrollView *scrollView = [_webView.subviews objectAtIndex:0];
scrollView.delegate = self;

//_webView.scrollView.delegate = self; //for versions newer than iOS5.


0 commentaires