UITextField的代理方法
2016-07-31 本文已影响58人
eryuxinling
// 设置代理
self.textField.delegate = self;
// 通过addTarget:也可以添加响应事件
// [self.textField addTarget:self action:@selector(tfEditingDidBegin) forControlEvents:UIControlEventEditingDidBegin];
// [self.textField addTarget:self action:@selector(tfEditingDidEnd) forControlEvents:UIControlEventEditingDidEnd];
// [self.textField addTarget:self action:@selector(tfEditingChanged:) forControlEvents:UIControlEventEditingChanged];
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
// 退出键盘
// [self.textField endEditing:YES];
// [self.textField resignFirstResponder];
[self.view endEditing:YES]; // 最常用此方法
}
#pragma mark - UITextFieldDelegate
- (void)textFieldDidBeginEditing:(UITextField *)textField {
NSLog(@"开始编辑");
}
- (void)textFieldDidEndEditing:(UITextField *)textField {
NSLog(@"结束编辑");
}
/**
* 当textField文字改变就会调用这个方法
* @param string 用户输入的文字
*
* @return YES:允许用户输入; NO:禁止用户输入
*/
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSLog(@"shouldChangeCharactersInRange--%@", string);
if ([string isEqualToString:@"1"]) {
return NO;
}
return YES;
}