문제

Cocoa 응용 프로그램 (iPhone이 아닌 MacOsx)에 WebView가 있고 사용자에게 JavaScript가 표시되지만 사용자가 텍스트를 선택하거나 마우스 오른쪽 버튼을 클릭하고 Reload 옵션을 선택할 수 없습니다.

WebView와의 모든 상호 작용을 비활성화하는 간단한 방법이 있습니까?

iPhone에서 사용자 상호 작용을 쉽게 비활성화 할 수는 있지만 이전에는 데스크탑 에서이 작업을 수행 할 필요가 없었으며 솔루션을 찾을 수 없습니다.

도움이 되었습니까?

해결책

편집과 UI 대표단을 모두 설정하십시오.

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

다른 팁

UI 대표단을 통해 드래그 앤 드롭 작업을 비활성화하는 것이 유용 할 수 있습니다.

- (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
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top