更改UITextView的字体颜色

Sno*_*man 23 cocoa-touch objective-c

我有一个UITextView,用户可以在其中输入文本.假设用户已输入值.如何通过单击按钮将已键入的文本和将来键入的文本的字体颜色更改为其他文本?

我已经设置了我可以更改文本颜色的位置,但只有在我开始输入之前选择颜色时它才有效.在我开始输入并尝试更改颜色后,它不会执行任何操作.

我有这个:

-(IBAction)changeInkColor:(id)sender
{
    [inkTextField setTextColor:[UIColor greenColor]]; 
    inkTextField.text=@"text";
}
Run Code Online (Sandbox Code Playgroud)

并且实际上只有在视图中没有文本时才会以绿色显示"文本".但是,如果我输入内容然后点击此按钮,则没有任何反应.

小智 23

我刚试过,我没有遇到任何问题.我设置了一个叫做的按钮[myTextView setTextColor:[UIColor redColor]];

键入一个黑色文字颜色后,我按下按钮,一切都变成了红色.然后我继续打字,都是红色的.

你也习惯setTextColor:这样做吗?


Oli*_*lie 17

最后,setTextColor:答案是,早期的答案中缺少一个重要的细节:要在iOS 8中使用它,我必须设置color = after = I设置文本.

因此,

- (void)viewDidLoad
{
    [super viewDidLoad];

    _myTextView.textColor = [UIColor whiteColor];
    _myTextView.text   = @"yadda yadda yadda...";

    // etc., snip
Run Code Online (Sandbox Code Playgroud)

难道工作,而

- (void)viewDidLoad
{
    [super viewDidLoad];

    _myTextView.text   = @"yadda yadda yadda...";
    _myTextView.textColor = [UIColor whiteColor];

    // etc., snip
Run Code Online (Sandbox Code Playgroud)

DID工作.这让我觉得我是iOS 8中的一个错误,我会写一下.

  • 仅供参考,这仍然是解决方案.它解决了我的问题.如果我在textColor之前设置文本,则文本保持黑色.如果我在文本后面设置颜色,它可以正常工作. (2认同)