所以我不久前发现了这个帖子: Change UITextField background when editing begins
最佳答案是用于在用户编辑时更改textField的背景图像的绝佳资源。但是,我的问题是,如何使用MULTIPLE文本字段启用它?
具体来说(对于我的应用)我有一个登录名和密码字段。使用我将在下面发布的代码,我可以得到我的第一个文本字段,以便在用户点击它时正确地更改图像。但是,当用户点击键盘上的下一个文本字段或“下一个”选项时,我无法让下一个字段效仿。由于您只能有一个“textFieldShouldBeginEditing”实例以及结束,因此您需要为同一部分下的两个字段设置图像更改代码。但是,当我这样做时,我的字段在点击第一个字段时会发生变化,并且在点击第二个字段时都会恢复。
关于这个优秀社区的任何想法?
以下是一些代码:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
_userNameTextField.background = [UIImage imageNamed:@"login_field_highlighted@2x"];
return YES;
_passwordTextField.background = [UIImage imageNamed:@"password_field_highlighted@2x"];
return YES;
}
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
_userNameTextField.background = [UIImage imageNamed:@"login_field@2x"];
return YES;
_passwordTextField.background = [UIImage imageNamed:@"password_field@2x"];
return YES;
}
- (BOOL) textFieldShouldReturn:(UITextField *)textField {
NSLog(@"textFieldShouldReturn");
if (textField == _userNameTextField) {
[_passwordTextField becomeFirstResponder];
} else if (textField == _passwordTextField) {
[_passwordTextField resignFirstResponder];
}
return YES;
}
答案 0 :(得分:2)
在每种方法中,您只需要检查哪个文本字段是针对的,就像在textFieldShouldReturn中一样:
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
if (textField == _userNameTextField) {
_userNameTextField.background = [UIImage imageNamed:@"login_field@2x"];
} else if (textField == _passwordTextField) {
_passwordTextField.background = [UIImage imageNamed:@"password_field@2x];
}
return YES;
}