今天在寫項(xiàng)目的時(shí)候需要實(shí)現(xiàn)一個(gè)功能:在輸入框的文字發(fā)生改變時(shí)判斷當(dāng)前輸入的文字是否符合要求,剛開始用了kvo對(duì)textField的keyPath“text”進(jìn)行了監(jiān)聽,事實(shí)證明這樣寫是沒用的,kvo只有在你要結(jié)束輸入時(shí)才返回改變的值,及新值,很明顯kvo沒有辦法實(shí)現(xiàn)我想要的效果,后來用了以下的方法實(shí)現(xiàn)了該效果,代碼如下:
1、首先給TextField添加監(jiān)聽事件:
[_textfield addTarget:self action:@selector(textFieldDidChange:)
forControlEvents:UIControlEventEditingChanged];
2、實(shí)現(xiàn)監(jiān)聽的方法:
- (void) textFieldDidChange:(UITextField*) sender {
if ([sender.text doubleValue] > [self.walletInfo.realDepositNum doubleValue]) {
_alertLabel.text = moreThanRealPosit;
_alertLabel.textColor = [UIColor redColor];
}
else {
_alertLabel.text = lessThanRealPosit;
_alertLabel.textColor = HEXCOLOR(0x999999);
}
}
這里我是判斷當(dāng)輸入的金額大于錢包總錢數(shù),底部彈窗的label的狀態(tài)將跟著發(fā)生改變;否則恢復(fù)原來的狀態(tài)。