2010-11-30 56 views

Répondre

52

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'"]; 
+4

+1 Bizarre, mais génial! –

+0

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

+0

exécutez-le dans "webViewDidFinishLoad" .il devrait fonctionner – cck

-6

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.

+0

Cela désactive toutes les interactions, n'est-ce pas? Pas seulement long contact? –

+0

Oups, vous avez raison. J'ai mal lu la question. – winsmith

1

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.