Ios 禁用可选属性时未设置UITextView文本颜色
设置: 我在基于故事板的视图中添加了简单的文本视图,并在viewcontroller的.m文件中添加了输出。我正在使用它设置文本。e、 gIos 禁用可选属性时未设置UITextView文本颜色,ios,uitextview,xcode6.1,Ios,Uitextview,Xcode6.1,设置: 我在基于故事板的视图中添加了简单的文本视图,并在viewcontroller的.m文件中添加了输出。我正在使用它设置文本。e、 g[\u textViewOne setText:@“测试文本”]。我使用的是Xcode 6.1,使用iOS 8.1进行编译 场景: 我想使UITextView不可触摸,就像UILabel一样(我使用UITextView而不是UILabel,因为我的文本可能是1行或2行,UILabel将文本在视图的垂直中心对齐1行,对于2行,它从左上角开始,我希望在这两种情况下
[\u textViewOne setText:@“测试文本”]代码>。我使用的是Xcode 6.1,使用iOS 8.1进行编译
场景:
我想使UITextView不可触摸,就像UILabel一样(我使用UITextView而不是UILabel,因为我的文本可能是1行或2行,UILabel将文本在视图的垂直中心对齐1行,对于2行,它从左上角开始,我希望在这两种情况下都从左上角开始,这很容易通过textview实现)
为了使它不可触摸,我首先从情节提要中禁用了它的selective
属性,并尝试运行该应用程序。取消选中selectable
property后,我的文本视图的文本没有使用我为其设置的颜色(我已经设置了红色),而是使用默认的黑色
如果我选中“可选”
,文本颜色将遵循我在interface builder中设置的颜色
问题:
selectable
属性不会遵循我为textview设置的textcolorselectable
属性,并尝试以编程方式将其设置为\u textViewOne.selectable=YES代码>然后TextView也不会遵循我在interface builder中设置的任何textcolor,只检查interface builder中的属性是否有效。(尝试使用干净构建,同时重新启动xcode)
(我知道我应该禁用textview的用户交互以使其不可触摸,但我意外地未选中
可选,花了我的时间才弄清楚发生了什么,所以我只是想知道我是否做错了什么,或者这是某种问题,或者这是该控件的正确行为。)要禁用与textView的交互(使其不可触摸),您可以使用:
_textViewOne.userInteractionEnabled = NO;
看起来这个bug已经在iOS 10上修复了
然而,当我在我们的bugtracker中看到这个bug时,我非常惊讶,它无法在iOS 10上重现,但却成功地在iOS 9上重现
在我的例子中,解决方案是按以下顺序在代码中编写:
textView.textColor = UIColor.red
textView.isSelectable = false
p.S.
textViewOne.userInteractionEnabled=false对我不起作用,因为我希望textview可以滚动,但没有选择选项。老问题,但我昨天刚刚遇到这个问题。这个问题和答案很有帮助
但是,由于我的UITextView
与表格单元格一样,因此isSelectable=false
不是一个可用的选项。以下是对我有效的方法:
在情节提要中,将UITextView
保留为选中userInteractionEnabled
在代码中,设置UITextView
textColor
,然后使用setUserInteractionEnabled:
将其设置为NO
self.textView.textColor=[UIColor blackColor];
[self.textView setUserInteractionEnabled:否]代码>
使用setUserInteractionEnabled:
而不是。userInteractionEnabled
显然是有效的区别
希望这能进一步帮助那些仍然支持iOS 9的人。感谢Ben的回答,但正如我在问题中提到的,我知道你们提供的解决方案,我需要问题1和问题2的答案。这绝对是一个奇怪的错误!iOS中有一个bug:更改文本也会更改颜色。更改文本后需要更改文本颜色,即tv.text=@“asd”;tv.textColor=[UIColor随便什么]。