1.实时监测 UITextfield 值的变化
直接检测法
[UIButton addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
- (void) textFieldDidChange:(id) sender {
UIButton = (UITextField *)sender;
NSLog(@"%@,%lu" , [UIButton text] , UIButton.text.length);
}
做登录窗口的时候可以判断用户账号密码是否超过规定长度
还有可以通过KVO,代理,通知,详情
https://blog.csdn.net/qxuewei/article/details/50727617
2.如何隐藏弹出的键盘?
(1):按return隐藏键盘
UITextField.delegate = self;
UITextField.returnKeyType =UIReturnKeyDone;//改变为完成键,按return时候自动隐藏键盘
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder];//取消第一响应者
return YES;
}
(2):点击空白处隐藏键盘
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
[self.view endEditing:YES];
}
如果textField在tableView上还可以实现下面的tableView的代理方法
-(void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ [self.view endEditing:YES];
}
问题二:键盘键盘遮挡输入框的的问题
解决方案
- (void)textFieldDidBeginEditing:(UITextField *)textField {
//216是输入框在最底部时view移动的距离,具体移动多少距离,需要根据实际情况而定
self.view.y =self.view.y -216;
}
- (void)textFieldDidEndEditing:(UITextField *)textField{
self.view.y =self.view.y +216;
}