大家都知道,好多app登录注册时,当textField有输入时,按钮颜色会高亮,没有输入,或者删除所有输入时,按钮又变为灰色;其实这样可以直接在textField的一个代理方法中进行判断,直接上代码吧。
方法一:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (string.length == 0) {
if (self.passWordTextField.text.length - 1 == 0) {
self.ensureBtn.backgroundColor = [UIColor grayColor];
}
else self.ensureBtn.backgroundColor = [UIColor redColor];
}
else self.ensureBtn.backgroundColor = [UIColor redColor];
return YES;
}
这里只写了一个TextField时的判断,
有疑问的可能是self.passWordTextField.text.length - 1 == 0为啥还需要判断的原因是,当你输入一些字符时,只要删除 ,string.length == 0,只有增加时string.length == 1。
为啥减一的原因是,当你删除最后一个字符时,按下按钮,self.passWordTextField.text.length还保存是1的状态,因此进行了减一操作,
方法二:
第二种思路:和按钮一样,给文本框添加事件的方式.因为文本框也是继续UIControl.所以能够直接添加.
给账号添加事件
[self.accontTextFaddTarget:selfaction:@selector(textChange)forControlEvents:UIControlEventEditingChanged];
给密码添加事件
都让它们响应一个方法
[self.pwdTextFaddTarget:selfaction:@selector(textChange)forControlEvents:UIControlEventEditingChanged];
}
?xml version="1.0" encoding="UTF-8"?
第二种思路:
当文本框开始编辑时调用,这样可以时刻坚听文本框的内容
- (void)textChange{
账号和密码都有值时,登录按钮才能够点击.
第一种判断方法:
/***
if (self.accontTextF.text.length && self.pwdTextF.text.length) {
self.loginBtn.enabled = YES;
}else{
self.loginBtn.enabled = NO;
}
*/
第二种判断方法
self.loginBtn.enabled=self.accontTextF.text.length&&self.pwdTextF.text.length;
}
第一次写东西,希望大家指正,个人水平很菜。也写的很麻烦。