Cocoa webView - отключить все взаимодействие

У меня есть webView в моем приложении cocoa (macosx not iphone), он отображает javascript для пользователя, но я не хочу, чтобы пользователь мог выбрать любой текст или щелкнуть правой кнопкой мыши и выбрать перезагрузку вариант.

Есть ли простой способ отключить все взаимодействие с webView?

Я знаю, что на iPhone легко отключить взаимодействие с пользователем, но мне никогда не приходилось делать это на рабочем столе раньше и не могу найти решение.

Ответы

Ответ 1

Задайте обе команды редактирования и пользовательского интерфейса:

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

Затем добавьте вышеописанные методы для отключения выбора текста и контекстного меню.

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

Ответ 2

через делегацию пользовательского интерфейса, может быть полезно также отключить операции перетаскивания, добавить

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