Pergunta

Eu tenho um webView no meu aplicativo de cacau (MacOSX não iphone), ele exibe alguns javascript para o usuário, mas eu não quero que o usuário seja capaz de selecionar qualquer parte do texto ou clique direito e selecione a opção de recarga.

Existe uma maneira simples para desativar toda a interação com o webView?

Eu sei sobre o iPhone é fácil de desativar a interação com o usuário, mas eu nunca precisei fazer isso no ambiente de trabalho antes e não pode encontrar uma solução.

Foi útil?

Solução

Set tanto edição e delegações de interface do usuário:

[view setUIDelegate:self];
[view setEditingDelegate:self];

Em seguida, adicione os métodos acima para seleção de texto desativar e menu de contexto.

- (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;
}

Outras dicas

por intermédio da delegação UI pode ser útil também para desativar as operações de arrastar e soltar, add

- (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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top