安全UITextField textColor

时间:2013-11-22 07:34:53

标签: ios objective-c uitextfield textcolor

我有几个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失去焦点,安全点就会变为红色。任何想法为什么会这样,以及如何解决它?

1 个答案:

答案 0 :(得分:1)

我认为这是一个错误。我有完全相同的问题,并通过在编辑结束时强制文本字段为所需的颜色来解决它。

- (void)textFieldDidEndEditing:(UITextField *)textField {
    if (textField == passwordTextField) {
        [textField setTextColor:defaultTextColour];
}

希望这有帮助!