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

Ios 禁用可选属性时未设置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行,它从左上角开始,我希望在这两种情况下

设置:

我在基于故事板的视图中添加了简单的文本视图,并在viewcontroller的.m文件中添加了输出。我正在使用它设置文本。e、 g
[\u textViewOne setText:@“测试文本”]。我使用的是Xcode 6.1,使用iOS 8.1进行编译

场景:

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

为了使它不可触摸,我首先从情节提要中禁用了它的
selective
属性,并尝试运行该应用程序。取消选中
selectable
property后,我的文本视图的文本没有使用我为其设置的颜色(我已经设置了红色),而是使用默认的黑色

如果我选中“可选”
,文本颜色将遵循我在interface builder中设置的颜色

问题:

  • 为什么从interface builder中取消选中
    selectable
    属性不会遵循我为textview设置的textcolor

  • 还有一件事我注意到了,如果我从interface builder中取消选中
    selectable
    属性,并尝试以编程方式将其设置为
    \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随便什么]。