禁用可选属性时,UITextView文本颜色未设置

Adi*_*ane 9 uitextview ios xcode6.1

建立 :

我在基于故事板的视图中添加了简单的textview,在viewcontroller的.m文件中使用了outlet.我正在使用它设置文本.例如[_textViewOne setText:@"Test text"];.我正在使用Xcode 6.1,使用iOS 8.1进行编译.

场景:

我想让UITextView不可触摸,就像UILabel一样(我使用的是UITextView而不是UILabel,因为我的文本可能是1或2行,UILabel在垂直中心对齐1行文本,2行从左上角开始,我希望它在两种情况下从左上角开始,这可以通过textview轻松实现).

为了使它不可触摸首先我selectable从Storyboard 禁用它的属性,并试图运行应用程序.取消选中selectable属性我的文本视图的文本不使用我为它设置的颜色(我设置了红色),它使用默认的黑色.

在此输入图像描述

如果我检查selectable,文本颜色遵循我在界面构建器中设置的任何颜色.

问题:

  1. 为什么selectable从界面构建器中取消选中属性不遵循我为textview设置的任何文本颜色.

  2. 还有一件事我注意到,如果我selectable从界面构建器中取消选中属性并尝试以编程方式设置它,_textViewOne.selectable = YES;那么TextView也不会遵循我在界面构建器中设置的任何文本颜色,只检查界面构建器中的属性是否有效.(尝试使用干净的构建,也重新启动xcode)

(我知道我应该让textview的用户交互禁用,使其不可触摸,但我不小心取消选中selectable,花了我的时间弄清楚发生了什么,所以只是想知道我做错了什么或这是某种问题或者这是此控件的正确行为.)

Pav*_*dov 5

看起来此错误已在 iOS 10 上修复。

但是,当我在我们的bugtracker中看到这个bug并且无法在iOS 10上重现,但在iOS9上成功重现时,我感到非常惊讶。

在我的情况下,解决方案是按以下顺序在代码中编写它:

textView.textColor = UIColor.red
textView.isSelectable = false
Run Code Online (Sandbox Code Playgroud)

聚苯乙烯

textViewOne.userInteractionEnabled = false 对我不起作用,因为我希望 textview 可以滚动,但没有选择选项。


Boa*_*ssi 2

要禁用与 textView 的交互(使其不可触摸),您可以使用:

_textViewOne.userInteractionEnabled = NO;
Run Code Online (Sandbox Code Playgroud)