大家都知道,好多app登錄注冊(cè)時(shí)熄守,當(dāng)textField有輸入時(shí)蜈垮,按鈕顏色會(huì)高亮耗跛,沒有輸入,或者刪除所有輸入時(shí)攒发,按鈕又變?yōu)榛疑魉黄鋵?shí)這樣可以直接在textField的一個(gè)代理方法中進(jìn)行判斷,直接上代碼吧惠猿。
方法一:
- (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;
}
這里只寫了一個(gè)TextField時(shí)的判斷羔砾,
有疑問的可能是self.passWordTextField.text.length - 1 == 0為啥還需要判斷的原因是,當(dāng)你輸入一些字符時(shí)偶妖,只要?jiǎng)h除 姜凄,string.length == 0,只有增加時(shí)string.length == 1趾访。
為啥減一的原因是态秧,當(dāng)你刪除最后一個(gè)字符時(shí),按下按鈕扼鞋,self.passWordTextField.text.length還保存是1的狀態(tài)申鱼,因此進(jìn)行了減一操作,
方法二:
第二種思路:和按鈕一樣,給文本框添加事件的方式.因?yàn)槲谋究蛞彩抢^續(xù)UIControl.所以能夠直接添加.
給賬號(hào)添加事件
[self.accontTextFaddTarget:selfaction:@selector(textChange)forControlEvents:UIControlEventEditingChanged];
給密碼添加事件
都讓它們響應(yīng)一個(gè)方法
[self.pwdTextFaddTarget:selfaction:@selector(textChange)forControlEvents:UIControlEventEditingChanged];
}
?xml version="1.0" encoding="UTF-8"?
第二種思路:
當(dāng)文本框開始編輯時(shí)調(diào)用,這樣可以時(shí)刻堅(jiān)聽文本框的內(nèi)容
- (void)textChange{
賬號(hào)和密碼都有值時(shí),登錄按鈕才能夠點(diǎn)擊.
第一種判斷方法:
/***
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;
}
第一次寫東西藏鹊,希望大家指正润讥,個(gè)人水平很菜。也寫的很麻煩盘寡。