UITextview隐藏光标/更改光标颜色

4
在我的应用程序中,我想要隐藏UITextView中的光标。
如果不可能的话,我想要改变光标的颜色。
我们能做到这一点吗?我已经搜索过了,但只得到了关于UITextfield的答案。
谢谢。

你没有说明是否要在键盘打开的情况下执行此操作。我发现这个问题是因为我想做同样的事情,但在我的情况下,我并没有打开键盘(您只能选择文本,而不能编辑它,但这需要启用编辑)。无论如何,对我来说解决方案很简单,就是[textView resignFirstResponder]; - livingtech
3个回答

13

在iOS 7上,您可以将文本视图的 tintColor 设置为与其 backgroundColor 相同,以使光标不可见。

textView.tintColor = textView.backgroundColor;

或者您可以尝试:

textView.tintColor = [UIColor clearColor];

这对我来说似乎没有任何影响,至少在iOS 10.3上是这样(除非我漏掉了什么)。下面的答案确实有效。 - Reid

3

只有在编辑属性设置为“否”时,您才能隐藏光标。


2

要隐藏光标,只需子类化UITextField并覆盖-caretRectForPosition:方法,该方法由UITextField实现以符合UITextInput协议:

- (CGRect)caretRectForPosition:(UITextPosition *)position
{
    return CGRectZero;    // ensures the cursor won't appear
}

关于更改颜色或光标,我认为如果没有访问私有API是不可能的。

编辑:根据S. Soffes的评论,可以通过tintColor属性更改颜色。


1
您可以通过设置文本视图的“tintColor”来更改颜色。 - Sam Soffes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接