UITEXTFIELD IOS7在输入过程中未设置字体颜色



我有一些简单的代码,在iOS6下工作正常。在UITextField中,当事件editingDidBegin到达时,我执行了一个简单的代码,该代码更改了输入的文本的颜色:

textField.textColor = [UIColor redColor];

尽管执行此代码,但文本颜色不会变为红色,而是在输入文本时以默认颜色保持不变。

如果我在 editingDidEnd上调用此方法,则以默认颜色输入文本,但是当编辑启动相同的代码时,将变为红色:

textField.textColor = [UIColor redColor];

textField是第一响应者时,我似乎无法更改textColor属性。

这里的任何帮助将不胜感激。

您应该为此做一些子类

这是一个很好的解决方案,在ios6和ios7上都起作用http://www.brightec.co.uk/blog/how-change-colour-uitextfields-placeholder-placeter-text-ios7-and-still-support-ios6

我找到了另一种实现这一目标的方法。我使用了UITEXTFIELD委托方法,并添加了以下代码。似乎我的原始方法应该搬到ios7,但现在可以正常工作。

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
    textField.textColor = [UIColor redColor];
    return YES;
}
[textField setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"];

这将改变UITextField的位置固定器颜色,