2013-05-11 80 views
2

所以我发现这个线程前一阵子: Change UITextField background when editing begins编辑时更改的UITextField背景入手多个领域

顶端回答是当用户编辑它改变文本框的背景图像的梦幻般的资源。然而,我的问题是,你怎么能启用这与多个文本字段?

具体(为我的应用程序)我有一个登录名和密码字段。使用代码我会在下面发布,我可以让我的第一个文本字段在用户点击它时正确更改图像。但是,当用户点击下一个文本字段或键盘上的“下一步”选项时,我无法获得下一个字段。由于您只能有一个“textFieldShouldBeginEditing”实例并结束,因此您需要为同一部分下的两个字段设置图像更改的代码。然而,当我这样做时,当第一个字段被点击时,我的字段都会改变,并且在第二个字段被点击时都会恢复。

关于这一个优秀社区的任何想法?

下面是一些代码:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 
    _userNameTextField.background = [UIImage imageNamed:@"[email protected]"]; 
    return YES; 
    _passwordTextField.background = [UIImage imageNamed:@"[email protected]"]; 
    return YES; 
} 

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField 
{ 
    _userNameTextField.background = [UIImage imageNamed:@"[email protected]"]; 
    return YES; 
    _passwordTextField.background = [UIImage imageNamed:@"[email protected]"]; 
    return YES; 
} 

- (BOOL) textFieldShouldReturn:(UITextField *)textField { 
    NSLog(@"textFieldShouldReturn"); 
    if (textField == _userNameTextField) { 
     [_passwordTextField becomeFirstResponder]; 
    } else if (textField == _passwordTextField) { 
     [_passwordTextField resignFirstResponder]; 
    } 

    return YES; 

} 

回答

2

在每一个这些方法,你只需要检查哪些文本框是有针对性的,就像你在textFieldShouldReturn那样:

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField 
{ 
    if (textField == _userNameTextField) { 
     _userNameTextField.background = [UIImage imageNamed:@"[email protected]"]; 
    } else if (textField == _passwordTextField) { 
     _passwordTextField.background = [UIImage imageNamed:@"[email protected]]; 
    } 
    return YES; 
}