监听第三方键盘

来源:互联网 发布:计算机机房网络维护ppt 编辑:程序博客网 时间:2024/05/29 12:32
#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];    [self monitorReadyKeyboardNotification];}#pragma mark --- keyboard handle ---- (void)monitorReadyKeyboardNotification{    [[ NSNotificationCenter defaultCenter ] addObserver : self selector : @selector(readyLiveKeyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];    [[ NSNotificationCenter defaultCenter ] addObserver : self selector : @selector(readyLiveKeyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];}- (void)removeKeyboardNotification{    [[ NSNotificationCenter defaultCenter]removeObserver:self name:UIKeyboardWillShowNotification object:nil];    [[ NSNotificationCenter defaultCenter]removeObserver:self name:UIKeyboardWillHideNotification object:nil];}- (void)readyLiveKeyboardWillShow:(NSNotification *)noti{    NSDictionary *info = [noti userInfo];    NSLog(@"show info = %@",info);    CGFloat keyboardDuration = [[info objectForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue];    CGRect keyboardEndRect = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];    CGRect keyboardBeginRect = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue];    /**     *  解决第三方键盘回调三次的问题     *     *  第三方键盘回调三次问题,监听仅执行最后一次     *     *  @return 0,-216,-282     */    if(keyboardBeginRect.size.height>0 && (keyboardBeginRect.origin.y-keyboardEndRect.origin.y>0)){        [UIView animateWithDuration:keyboardDuration animations:^{            //self.bg.frame = CGRectMake(0,keyboardEndRect.origin.y-CGRectGetMaxY(self.inputView.frame), Width, Height);        }];    }}- (void)readyLiveKeyboardWillHide:(NSNotification *)noti{    NSDictionary *info = [noti userInfo];    NSLog(@"hide info =%@",info);    CGFloat keyboardDuration = [[info objectForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue];    [UIView animateWithDuration:keyboardDuration animations:^{        //self.bg.frame = CGRectMake(0, 0, Width, Height);    }];}
0 0