禁用文本选择UITextView

时间:2009-12-13 12:21:57

标签: iphone

我想在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设置为隐藏,然后停止文本复制,但文本选择仍然可见。

谷歌搜索结果(也是StackOverflow)让我无法解决问题。有人已经面对了 同样的问题?有任何想法吗?

3 个答案:

答案 0 :(得分:3)

如果要阻止文本选择但保持链接交互,请添加以下textview委托方法

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

答案 1 :(得分:2)

如果您要在应用的所有 UITextView上停用剪切/复制/粘贴,则可以使用类别

@implementation UITextView (DisableCopyPaste)

- (BOOL)canBecomeFirstResponder
{
    return NO;
}

@end

它保存了一个子类......: - )

否则,只需子类UITextView并放置:

- (BOOL)canBecomeFirstResponder
{
    return NO;
}

答案 2 :(得分:-1)

textView.editable = NO;

[textView setEnabled:NO];
我不确定你的意思