2009-12-13 67 views
0

我想在UITextView上禁用文本選擇。到現在爲止我所 已經做的是:禁用文本選擇UITextView

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender { 
    [UIMenuController sharedMenuController].menuVisible = NO; 
    if (action == @selector(paste:)) 
    return NO; 
    if (action == @selector(select:)) 
    return NO; 
    if (action == @selector(selectAll:)) 
    return NO; 
    return NO; 
} 

在這個遠離我設置UIMenuController爲隱藏,我制止文本的副本,但選擇的文本仍清晰可見。

Google結果(也是StackOverflow)讓我無法解決。有人已經面臨 同樣的問題?有任何想法嗎?

回答

2

如果你想在禁用剪切/複製/粘貼所有您的應用程序UITextView可以使用類別有:

@implementation UITextView (DisableCopyPaste) 

- (BOOL)canBecomeFirstResponder 
{ 
    return NO; 
} 

@end 

它節省了子類... :-)

否則,只要繼承UITextView並提出:

- (BOOL)canBecomeFirstResponder 
{ 
    return NO; 
} 
+0

的問題是關於禁用「UITextView」上的文本選擇,這就是這段代碼的作用...... –

+0

這也會禁用文本輸入,但肯定嗎?是的,只是測試。這會禁用任何文本輸入到文本字段。 – Fogmeister

-1
textView.editable = NO; 

[textView setEnabled:NO]; 

林不知道什麼ü意味着

2

如果你想防止文本選擇,但保持聯繫互動,添加以下TextView的委託方法

- (void)textViewDidChangeSelection:(UITextView *)textView 
{ 
    [textView setSelectedRange:NSMakeRange(NSNotFound, 0)]; 
} 
+1

如果任何嘗試退格,這會使應用程序崩潰。 – Manesh