我有几个UITextFields
用于注册新帐户:名称,密码等。密码文本字段在故事板中是安全的。服务器返回验证信息,例如密码是否太短等等。
当返回验证错误时,我将相应textField
的textColor更改为红色以突出显示它有错误。
[messages enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
NSString *validationObj = (NSString*)key;
NSArray *validationMsg = (NSArray*)obj;
if ([validationObj isEqualToString:@"password"])
self.registerFirstNameTextField.textColor = [UIColor redColor];
当他们开始编辑文字字段时,我使用连接到EditingChanged
的“TextField
”事件的操作将颜色更改为黑色。
- (IBAction)textFieldDidChange:(id)sender {
UITextField *textField = (UITextField*)sender;
textField.textColor = [UIColor blackColor];
}
在模拟器中(我没有在设备上试过这个),除了密码文本字段外,这适用于所有textfields
。具体来说,当我编辑密码textfield
时,它会变为黑色,但只要textfield
失去焦点,安全点就会变为红色。任何想法为什么会这样,以及如何解决它?
答案 0 :(得分:1)
我认为这是一个错误。我有完全相同的问题,并通过在编辑结束时强制文本字段为所需的颜色来解决它。
- (void)textFieldDidEndEditing:(UITextField *)textField {
if (textField == passwordTextField) {
[textField setTextColor:defaultTextColour];
}
希望这有帮助!