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.

¿Fue útil?

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
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top