键盘处理
退出键盘
[self.messageField resignFirstResponder]
[self.messageField endEditing:YES]
[self.view endEditing:YES];
叫出键盘
[self.messageField becomeFirstResponder]
更换键盘
UIView *keyboard = [[UIView alloc] init];
keyboard.frame = CGRectMake(0, 0, 0, 100);
keyboard.backgroundColor = [UIColor redColor];
self.emailField.inputView = keyboard;
设置键盘顶部的工具条;
UIToolbar *toolbar = [[[NSBundle mainBundle] loadNibNamed:@"AHKeyboardTool" owner:nil options:nil] firstObject];
self.nameField.inputAccessoryView = toolbar;
监听键盘通知
- (void)viewDidLoad {
[super viewDidLoad];
UIView *leftView = [[UIView alloc] init];
leftView.frame = CGRectMake(0, 0, 10, 0);
self.messageField.leftView = leftView;
self.messageField.leftViewMode = UITextFieldViewModeAlways;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrame:) name:UIKeyboardWillChangeFrameNotification object:nil];
}
- (void)dealloc{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
#pragma mark - 键盘处理
- (void)keyboardWillChangeFrame:(NSNotification *)note {
CGRect rect = [note.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];
double duration = [note.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue];
[UIView animateWithDuration:duration animations:^{
CGFloat ty = [UIScreen mainScreen].bounds.size.height - rect.origin.y;
self.view.transform = CGAffineTransformMakeTranslation(0, - ty);
}];
}
UITextFieldDelegate
#pragma mark - <UITextFieldDelegate>
/**
* 键盘弹出就会调用这个方法
*/
- (void)textFieldDidBeginEditing:(UITextField *)textField{
}
/**
* 当点击键盘右下角的return key时,就会调用这个方法
*/
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
}