在集成了IQKeyboard之后,就会有一个问题,当一个页面有多个textField之后,点击任意一个textfield,IQKeyboard都会强制执行textFieldShouldBeginEditing这个代理方法,而且是多次执行,执行的次数取决于你有多少个textfield添加了delegate。所以就会出现一个很尴尬的情况:
我第二个textfield有一个点击事件,添加代理,放在代理方法内判断执行,但是第一个textfield并没有添加代理,当我点击第一个textfield的时候,就会强制执行shouldBegin这个方法,方法的参数是添加带来的第二个textfield
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
if (textField == myTextField1) {
if (textField.isAskingCanBecomeFirstResponder == NO) {
NSLog(@"do something...");
}
return NO;
}else if (textField == myTextField2) {
if (textField.isAskingCanBecomeFirstResponder == NO) {
NSLog(@"do another something...");
}
return NO;
}else {
return YES;
}
}