IOS中输入框被软键盘遮挡的解决办法

2021-11-01 09:11:13 浏览数 (3)

实现方法:

1)将输入框的代理设置为self

       (在lb文件中将输入框的delegate设置为File’s Owner 。或者使用代码textField.delegate = self;

   2)将输入框所对应的ViewController.h设置实现了UITextFieldDelegate协议

         在ViewController.m文件中实现UITextFieldDelegate的三个方法即可:

代码语言:javascript复制
    //开始编辑输入框的时候,软键盘出现,执行此事件

    -(void)textFieldDidBeginEditing:(UITextField *)textField

    {

        CGRect frame = textField.frame;

        int offset = frame.origin.y   32 - (self.view.frame.size.height - 216.0);//键盘高度216

    NSTimeInterval animationDuration = 0.30f;  
    [UIView beginAnimations:@"ResizeForKeyboard" context:nil];  
    [UIView setAnimationDuration:animationDuration];  

    //将视图的Y坐标向上移动offset个单位,以使下面腾出地方用于软键盘的显示  
    if(offset > 0)  
        self.view.frame = CGRectMake(0.0f, -offset, self.view.frame.size.width, self.view.frame.size.height);  

    [UIView commitAnimations];  
}  

//当用户按下return键或者按回车键,keyboard消失  
-(BOOL)textFieldShouldReturn:(UITextField *)textField  
{  
    [textField resignFirstResponder];  
    return YES;  
}  

//输入框编辑完成以后,将视图恢复到原始状态  
-(void)textFieldDidEndEditing:(UITextField *)textField  
{  
    self.view.frame =CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);  
}  </pre> 


 方法很简单吧?请注意一定不要忘记设置输入框的代理delegate哦

0 人点赞