2014-02-20 65 views
0

禁用UITextview選擇禁用或禁用複製/粘貼菜單,但我不想禁用我的鏈接UITextview 我嘗試,但都禁用任何解決方案?如何disbale UITextview文本選擇

+0

顯示您使用了 –

+0

代碼[TextView的setSelectable:否]; –

+0

該代碼禁用我的網頁鏈接在uitextview不能按下 –

回答

0

中 - textViewDidChangeSelection:委託方法,

textView.selectedRange = NSMakeRange(0,0); 
+0

我使用textView.selectedRange = NSRangeMake(0,0); 但複製/粘貼菜單和選擇工作 –

2

,如果你只是想禁用複製/粘貼。你應該使用一個子類爲您的UITextView

然後簡單地做到這一點,以禁用菜單中的所有項目:

- (BOOL)canBecomeFirstResponder { 
    return NO; 
} 

,如果你只是想要停止複製和粘貼,你可以這樣做:

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender 
{ 
    if (action == @selector(paste:) || action == @selector(copy:)) 
     return NO; 
    return [super canPerformAction:action withSender:sender]; 
} 
1

按照您的要求執行以下操作。這將肯定工作:

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender 
{ 
    if (action == @selector(selectAll:)) 
    return NO; 

    if (action == @selector(select:)) 
    return NO; 

    if (action == @selector(cut:)) 
    return NO; 

    if (action == @selector(copy:)) 
     return NO; 

    if (action == @selector(paste:)) 
    return NO; 

return [super canPerformAction:action withSender:sender]; 
} 
0

試試這個

yourTextView.editable = NO 
1

您可以通過騎UITextField- (BOOL)canPerformAction:(SEL)action withSender:(id)sender。請參見下面的代碼 -

@interface MYLoginTextField : UITextField 

@end 

@implementation MYLoginTextField 

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender 
{ 
    if (action == @selector(paste:) || action == @selector(copy:) || action == @selector(cut:) || action == @selector(select:) || action == @selector(selectAll:) || action == @selector(select:)) 
     return NO; 

    return [super canPerformAction:action withSender:sender]; 
} 

@end 
+0

代碼不起作用 –

+0

你究竟如何嘗試這個?我更新了從我的工作項目中取得的完整代碼。 – nanjunda

+0

我在子類中使用此代碼,該代碼無法在textview中按鏈接並且未顯示覆制/粘貼菜單。 - (BOOL)canBecomeFirstResponder {return NO; }然後我寫這段代碼,然後允許按鏈接,但在其他文本顯示「定義」 - (BOOL)canPerformAction:(SEL)action withSender:(id)sender {if(action == @selector(selectAll :) && action = = @selector(select :) && action == @selector(cut :) && action == @selector(copy :) && action == @selector(paste :))return NO; return [super canPerformAction:action withSender:sender];在這種情況下,plz幫助我。 –