Cacao web View - Desactivar todas las interacciones
Pregunta
Tengo una web View en mi solicitud de cacao (no MacOsX iPhone), que muestra algunos javascript para el usuario pero no desea que el usuario sea capaz de seleccionar cualquiera de los textos o haga clic derecho y seleccione la opción de recarga.
¿Hay una forma sencilla de desactivar toda la interacción con la web View?
Sé que en el iPhone su facilidad para desactivar la interacción del usuario pero nunca he necesitado hacer esto en el escritorio antes y no puedo encontrar una solución.
Solución
Ajuste tanto la edición y delegaciones de interfaz de usuario:
[view setUIDelegate:self];
[view setEditingDelegate:self];
A continuación, añadir los métodos anteriores para desactivar la selección del texto y el menú contextual.
- (NSArray *)webView:(WebView *)sender contextMenuItemsForElement:(NSDictionary *)element
defaultMenuItems:(NSArray *)defaultMenuItems
{
// disable right-click context menu
return nil;
}
- (BOOL)webView:(WebView *)webView shouldChangeSelectedDOMRange:(DOMRange *)currentRange
toDOMRange:(DOMRange *)proposedRange
affinity:(NSSelectionAffinity)selectionAffinity
stillSelecting:(BOOL)flag
{
// disable text selection
return NO;
}
Otros consejos
a través de la delegación de la interfaz de usuario podría ser útil también para desactivar las operaciones de arrastrar y soltar, añadir
- (NSUInteger)webView:(WebView *)sender dragSourceActionMaskForPoint:(NSPoint)point
{
return WebDragSourceActionNone; // Disable any WebView content drag
}
- (NSUInteger)webView:(WebView *)sender dragDestinationActionMaskForDraggingInfo:(id <NSDraggingInfo>)draggingInfo
{
return WebDragDestinationActionNone; // Disable any WebView content drop
}