2010-11-30 11 views

Respuesta

52

En webViewDidFinishLoad delegado Ejecuto un javascript en la página html cargada que desactiva el toque largo.

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

+1 ¡Extraño, pero increíble! –

+0

He agregado la misma línea ... Pero no está funcionando. No sé qué está pasando mal ... :( En la mayoría de los enlaces encontré la misma solución que la anterior ... – Gati

+0

ejecútelo en "webViewDidFinishLoad". Debería funcionar. – cck

-6

Abra su vista en Interface Builder, haga clic en la vista web y luego desactive la casilla "Interacción del usuario habilitada" en el inspector de atributos.

Si desea hacerlo en código, establezca la propiedad userInteractionEnabled de la vista web en NO.

+0

Eso deshabilita toda interacción, ¿no es así? No solo toque largo? –

+0

Vaya, tienes razón. Leí mal la pregunta. – winsmith

1

Se podría tratar de anular los siguientes métodos desde el controlador de vista:

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

esta manera se puede sustituir la gestión toques de costumbre con su propia implementación.

Cuestiones relacionadas