Какао WebView - отключить все взаимодействие - PullRequest
13 голосов
/ 09 августа 2009

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

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

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

Ответы [ 2 ]

39 голосов
/ 09 августа 2009

Установить и редактирование, и делегирование пользовательского интерфейса:

[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;
}
3 голосов
/ 12 июля 2014

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

- (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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...