键盘收起

代理

     //开始编辑输入框的时候,软键盘出现,执行此事件
       -(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];
            }
        }
        //engter键收回键盘
        - (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);
        }
        //点击屏幕, 收回键盘
        -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
            [self.view endEditing:YES];
        }

通知

    NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
        [center addObserver:self selector:@selector(keyboardAppear:) name:UIKeyboardWillShowNotification object:nil];
        [center addObserver:self selector:@selector(keyboardDisappear:) name:UIKeyboardWillHideNotification object:nil];

    -(void)keyboardAppear:(NSNotification*)notification{ 
        NSDictionary*info = notification.userInfo;
        CGRect keyboardFrame = [info[UIKeyboardFrameEndUserInfoKey] CGRectValue];
        CGRect frame =  self.inputView3.frame;
        frame.origin.y = keyboardFrame.origin.y - self.inputView3.bounds.size.height;

        UIViewAnimationOptions optiones = [info[UIKeyboardAnimationCurveUserInfoKey] unsignedIntegerValue];
        NSTimeInterval duration = [info[UIKeyboardAnimationDurationUserInfoKey] doubleValue];
        [UIView animateWithDuration:duration
                              delay:0.0
                            options:optiones
                         animations:^{
                             self.inputView3.frame = frame;
                         }
                         completion:nil];
    }

    -(void)keyboardDisappear:(NSNotification*)notification{

        NSDictionary*info = notification.userInfo;
        CGRect frame =  self.inputView3.frame;
        frame.origin.y = self.view.bounds.size.height;
        UIViewAnimationOptions optiones = [info[UIKeyboardAnimationCurveUserInfoKey] unsignedIntegerValue];
        NSTimeInterval duration = [info[UIKeyboardAnimationDurationUserInfoKey] doubleValue];
        [UIView animateWithDuration:duration
                              delay:0.0
                            options:optiones
                         animations:^{
                             self.inputView3.frame = frame;
                         }
                         completion:nil];
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值