tags:

views:

781

answers:

1

I have a webView in my cocoa application (macosx not iphone), it displays some javascript to the user but I don't want the user to be able to select any of the text or right click and select the reload option.

Is there a simple way to disable all interaction with the webView?

I know on the iPhone its easy to disable user interaction but I have never needed to do this on the desktop before and can't find a solution.

+4  A: 

Set both editing and UI delegations:

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

Then add the methods above to disable text selection and context menu.

- (NSArray *)webView:(WebView *)sender contextMenuItemsForElement:(NSDictionary *)element 
    defaultMenuItems:(NSArray *)defaultMenuItems
{
    // disable right-click context menu
    return NO;
}

- (BOOL)webView:(WebView *)webView shouldChangeSelectedDOMRange:(DOMRange *)currentRange 
    toDOMRange:(DOMRange *)proposedRange 
    affinity:(NSSelectionAffinity)selectionAffinity 
    stillSelecting:(BOOL)flag
{
    // disable text selection
    return NO;
}
Nando Vieira
Thank you very much
Craig
Old, but... for the sake of good form, shouldn't we be returning nil in the first method, instead of NO?
SirRatty