我有一些简单的代码,在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
的位置固定器颜色,