前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IOS中输入框被软键盘遮挡的解决办法

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

原创
作者头像
用户8983410
修改2021-11-01 09:11:13
1.5K0
修改2021-11-01 09:11:13
举报

实现方法:

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哦

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档