marcio
marcio

Reputation: 2729

Disable text selection UITextView

I want to disable text selection on a UITextView. Until now what i've already done is:

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

In this away I set UIMenuController to hidden and i put a stop to text copy but the text selection is still visible.

Google results (also StackOverflow) take me to no solution. Has someone already faced the same problem? Any ideas?

Upvotes: 0

Views: 3933

Answers (3)

Raphaël Pinto
Raphaël Pinto

Reputation: 653

If you want to prevent the text selection but keep links interactions, add the following textview delegate methods

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

Upvotes: 3

Danny Lin
Danny Lin

Reputation: 180

textView.editable = NO;

or

[textView setEnabled:NO];

im not sure what u meant

Upvotes: -1

Damien Debin
Damien Debin

Reputation: 2822

If you want to disable cut/copy/paste on all UITextView of your application you can use a category with :

@implementation UITextView (DisableCopyPaste)

- (BOOL)canBecomeFirstResponder
{
    return NO;
}

@end

It saves a subclassing... :-)

Otherwise, just subclass UITextViewand put :

- (BOOL)canBecomeFirstResponder
{
    return NO;
}

Upvotes: 2

Related Questions