#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);
}];
}
监听第三方键盘
最新推荐文章于 2023-12-21 16:06:03 发布