代码之家  ›  专栏  ›  技术社区  ›  marcio

禁用文本选择UITextView

  •  0
  • marcio  · 技术社区  · 16 年前

    我想禁用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 results(也是StackOverflow)让我觉得没有解决方案。有人已经面对 同样的问题?有什么想法吗?

    3 回复  |  直到 13 年前
        1
  •  3
  •   Raphaël Pinto    11 年前

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

    - (void)textViewDidChangeSelection:(UITextView *)textView
    {
        [textView setSelectedRange:NSMakeRange(NSNotFound, 0)];
    }
    
        2
  •  2
  •   Damien Debin    14 年前

    如果要禁用剪切/复制/粘贴 全部的 UITextView 您可以使用 类别 使用:

    @implementation UITextView (DisableCopyPaste)
    
    - (BOOL)canBecomeFirstResponder
    {
        return NO;
    }
    
    @end
    

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

    否则,只是子类 超文本视图 把:

    - (BOOL)canBecomeFirstResponder
    {
        return NO;
    }
    
        3
  •  -1
  •   ollo    13 年前
    textView.editable = NO;
    

    [textView setEnabled:NO];
    

    我不知道你是什么意思