Je souhaite désactiver le contact long depuis l'application. Je n'ai aucun contrôle sur le HTML que je charge sur mon WebView.Comment désactiver le contact long dans UIWebView?
Répondre
Dans webViewDidFinishLoad
délégué Je lance un javascript sur la page html chargée qui désactive le contact long.
[webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitTouchCallout='none'; document.body.style.KhtmlUserSelect='none'"];
Ouvrez votre vue dans Interface Builder, cliquez sur l'affichage Web, puis décochez la case "Interaction utilisateur activée" dans l'inspecteur d'attributs.
Si vous souhaitez le faire dans le code, définissez la propriété userInteractionEnabled de la vue Web sur NO
.
Cela désactive toutes les interactions, n'est-ce pas? Pas seulement long contact? –
Oups, vous avez raison. J'ai mal lu la question. – winsmith
Vous pouvez essayer de remplacer les méthodes suivantes du contrôleur de vue:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
cette façon, vous pouvez remplacer la gestion habituelle des touches avec votre propre implémentation.
+1 Bizarre, mais génial! –
J'ai ajouté la même ligne .. Mais ça ne marche pas. Je ne sais pas ce qui ne va pas .. :( Dans la plupart des liens, j'ai trouvé la même solution que ci-dessus .. – Gati
exécutez-le dans "webViewDidFinishLoad" .il devrait fonctionner – cck