首页 > 其他 > 详细

监听键盘的通知

时间:2015-10-18 19:50:07      阅读:593      评论:0      收藏:0      [点我收藏+]

 

#pragma mark - 键盘通知回调方法

//  监听键盘的通知

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrameNotification:) name:UIKeyboardWillChangeFrameNotification object:nil];

 

/*

 UIKeyboardAnimationCurveUserInfoKey = 7;   键盘执行动画的节奏

 UIKeyboardAnimationDurationUserInfoKey = "0.25"; 键盘弹出动画执行时间

 UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {375, 258}}"; 键盘尺寸

 UIKeyboardCenterBeginUserInfoKey = "NSPoint: {187.5, 796}"; 键盘当前的位置

 UIKeyboardCenterEndUserInfoKey = "NSPoint: {187.5, 538}";  键盘改变后中心的位置

 UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 667}, {375, 258}}"; 键盘当前的frame

 UIKeyboardFrameEndUserInfoKey = "NSRect: {{0, 409}, {375, 258}}"; 键盘改变后的frame

 

 */

 

- (void)keyboardWillChangeFrameNotification:(NSNotification *) notification

{

//    NSLog(@"%@",notification.userInfo);

//  1.取出键盘当前的y坐标

    CGRect beginFrame =  [notification.userInfo[UIKeyboardFrameBeginUserInfoKey] CGRectValue];

    CGRect endFrame =  [notification.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];

//  2.中间的差值

    CGFloat minus =  endFrame.origin.y - beginFrame.origin.y ;

//  3.根据差值改变控制器viewframe

    CGRect viewFrame = self.view.frame;

    viewFrame.origin.y += minus;

    self.view.frame = viewFrame;

    

}

 

 

#pragma mark - tableView代理方法

/**

 *  拖拽tableView方法

 */

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

{

//  退出键盘

    [self.view endEditing:YES];

}

 

#pragma mark -dealloc方法写到最后

- (void)dealloc

{

//  移除通知

    [[NSNotificationCenter defaultCenter] removeObserver:self];

    

}

 

 

 

 

监听键盘的通知

原文:http://www.cnblogs.com/supersr/p/4890038.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!