我想在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)让我无法解决问题。有人已经面对了 同样的问题?有任何想法吗?
答案 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];
我不确定你的意思