2010-11-30 3 views

Antwort

52

In webViewDidFinishLoad delegiere ich ein Javascript auf der geladenen HTML-Seite, die die lange Berührung deaktivieren.

[webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitTouchCallout='none'; document.body.style.KhtmlUserSelect='none'"]; 
+4

+1 Seltsam, aber großartig! –

+0

Ich habe die gleiche Zeile hinzugefügt .. Aber es funktioniert nicht. Ich weiß nicht, was schief läuft .. :( In den meisten Links fand ich die gleiche Lösung wie oben .. – Gati

+0

führen Sie es in "webViewDidFinishLoad". Es sollte funktionieren. – cck

-6

Öffnen Sie Ihre Ansicht im Interface Builder, klicken Sie auf die Webansicht und deaktivieren Sie das Kontrollkästchen "Benutzerinteraktion aktiviert" im Attribut-Inspektor.

Wenn Sie dies im Code tun möchten, legen Sie die Eigenschaft userInteractionEnabled der Webansicht auf NO fest.

+0

Das deaktiviert alle Interaktion nicht wahr? Nicht nur lange Berührung? –

+0

Hoppla, du hast Recht. Ich habe die Frage falsch gelesen. – winsmith

1

Sie könnten versuchen, die folgenden Methoden aus den View-Controller außer Kraft zu setzen:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; 
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event; 
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event; 

diese Art und Weise können Sie das übliche berührte Management mit eigener Implementierung ersetzen.