2013-08-23 42 views
3

我知道這是最常見的問題之一。作爲事實上,我發現下面的鏈接:無法禁用UIWebView中的複製/定義選擇菜單

Disabling user selection in UIWebView

,但我仍然無法刪除複製並定義從菜單中選擇項目。我只想讓我的'快速'和'另一個'項目顯示在菜單中。任何人都可以告訴我一個方法嗎?感謝您的時間。這是我的代碼和截圖。

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender 
{ 


    if (action == @selector(quick:)) { 

     NSLog(@"my quick view"); 
     return YES; 

    }else if (action == @selector(another:)){ 

     NSLog(@"my another view"); 
     return YES; 

    }else if (action == @selector(copy:) || 
     action == @selector(paste:)|| 
     action == @selector(cut:) || 
     action == @selector(define:)) 
    { 
     return NO; 
    } 

    return [super canPerformAction:action withSender:sender]; 

} 

enter image description here

+0

欲瞭解更多信息,請參閱http://stackoverflow.com/q/2955354/49485。 –

回答

0

嘗試使用這個人在這個方法.....

-(void)webViewDidFinishLoad:(UIWebView *)theWebView 
{ 
    [webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitTouchCallout='none'; document.body.style.KhtmlUserSelect='none'"]; 
} 

我希望它可以幫助你......

+0

感謝您的建議,但這會殺死整個事情。我希望我的項目'快速'和'另一個'出現,禁用複製和定義。 – boochan224

+2

這僅適用於iOS 6及更早版本。 –

+1

不適用於ios 8。 – Sonu

1

首先,要解決您的問題,請將define:更改爲_define:以刪除相關選項。

但是,_define:是Apple私有API中的一項功能(因爲_),如果要在App Store上發佈它們,則不能在產品中使用它們。

但是,根據您的copy:選項,您的canPerformAction應將其刪除。

僅供參考,我在這裏附上的私有API函數列表,其中canPerformAction將調用:

_promptForReplace:

_showTextStyleOptions:

_define:

_addShortcut:

_accessibilitySpeak:

_accessibilitySpeakLanguageSelection:

_accessibilityPauseSpeaking:

因此,如果你想刪除上述任何功能,你必須創建一個自定義菜單欄。下面這個視頻應該可以幫助你做的伎倆:

http://www.youtube.com/watch?v=SB7w8JEJSrc

GOOD LUCK!

編輯:

這裏是您的解決方案:

-(BOOL)canPerformAction:(SEL)action withSender:(id)sender 
{ 


if (action == @selector(quick:)) { 

    NSLog(@"my quick view"); 
    return YES; 

}else if (action == @selector(another:)){ 

    NSLog(@"my another view"); 
    return YES; 

} 

return NO; 

} 
+0

這裏的API調用查看PDF時,我得到: - 行動是:切: - 操作是:選擇: - 行動是:全選: - 行動是:貼: - 行動是:刪除: - 動作是:_promptForReplace: - 行動是:_showTextStyleOptions: - 行動是:_addShortcut: - 行動是:_accessibilitySpeak: - 行動是:_accessibilitySpeakLanguageSelection: - 行動是:_accessibilityPauseSpeaking: - 行動是:makeTextWritingDirectionRightToLeft: - 行動是:makeTextWritingDirectionLeftToRight: – cynistersix

+0

基本上,你是proh適用於包含任何私有API,該API使用下劃線'_'開頭。如果您碰巧將它們作爲代碼的一部分,它肯定會被App Store拒絕。 – donkey

+0

APPLE自己的私人API,更確切地說 – donkey

相關問題