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
}