第一种方法,使用它的委托UITextFieldDelegate中的方法textFieldShouldReturn:来关闭虚拟键盘。
在UITextField视图对象如birdNameInput所在的类中实现这个方法。
- (BOOL)textFieldShouldReturn:(UITextField *)textField {  
    if ((textField == self.birdNameInput) || (textField == self.locationInput)) {  
         [textField resignFirstResponder];  
    }  
     return YES;  
 }  
第二种方法,将birdNameInput的属性中Return Key修改为done,再定义一个方法和Done键的Did End On Exit连接。通过轻击done键触发这个事件来关闭虚拟键盘。
定义的方法如下:
- (IBAction) textFieldDoneEditing:(id)sender  
{  
     [sender resignFirstResponder];  
}  
第三种方法,通过轻击键盘之外的空白区域关闭虚拟键盘。
在birdNameInput所属的视图控制器类的viewDidLoad方法中定义一个UITapGestureRecognizer的对象,然后将它赋值为它的视图。
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]   initWithTarget:self action:@selector(dismissKeyboard)];  
[self.view addGestureRecognizer:tap];  

定义选择器调用的方法dismissKeyboard。
-(void)dismissKeyboard {  
     [birdNameInput resignFirstResponder];  
}  

 

//注册通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];

#pragma mark - 键盘将要隐藏
- (void)keyboardWillHide:(NSNotification *)notification
{
    NSDictionary *userInfo = [notification userInfo];
    NSValue *animationDurationValue = [userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey];
    NSTimeInterval animationDuration;
    [animationDurationValue getValue:&animationDuration];
    [UIView animateWithDuration:animationDuration animations:^{
        //TODO
    }];
}

 

相关文章:

  • 2021-10-18
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-06-05
  • 2021-12-09
  • 2021-08-29
  • 2021-10-30
  • 2021-10-25
  • 2021-09-03
相关资源
相似解决方案