IOS开发中使用文本框进行键盘通知的操作方法
来源:爱站网时间:2020-07-22编辑:网友分享
IOS开发中,通常都是单机文本框的控件弹出系统键盘,这个时候如果键盘的位置不正确,控件可能会被阻止操作,本文是爱站技术频道通过实例介绍的IOS开发中使用文本框进行键盘通知的操作方法,大家可以参考下下文的代码进行操作。
IOS开发中,通常都是单机文本框的控件弹出系统键盘,这个时候如果键盘的位置不正确,控件可能会被阻止操作,本文是爱站技术频道通过实例介绍的IOS开发中使用文本框进行键盘通知的操作方法,大家可以参考下下文的代码进行操作。
代码:
#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. //为textField增加键盘事件 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(addKeyboardNoti) name:UITextFieldTextDidBeginEditingNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(removeKeyboardNoti) name:UITextFieldTextDidEndEditingNotification object:nil]; } #pragma -mark -keyboard notificatin //键盘事件 - (void)keyboardWillShow:(NSNotification *)notification { NSDictionary *info = [notification userInfo]; // keyboardHeight 为键盘高度 CGSize keyboardSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size; [self animateViewWithKeyboardHeight:keyboardSize.height]; } - (void)keyboardWillHide:(NSNotification *)notification { [self animateViewWithKeyboardHeight:0.0]; } - (void)animateViewWithKeyboardHeight:(CGFloat)keyboardHeight { NSTimeInterval animationDuration = 0.3f; CGFloat height = self.view.bounds.size.height; CGFloat width = self.view.bounds.size.width; CGFloat topSize = 0.0; CGFloat viewH = self.view.frame.size.height-64; CGFloat deviceHeight = [UIScreen mainScreen].bounds.size.height; CGFloat animateH = deviceHeight - viewH - keyboardHeight; if (animateH >= 0) { topSize = 0; CGRect toRect = CGRectMake(0, topSize, width, height); self.view.frame = toRect; } else { topSize = animateH; CGRect toRect = CGRectMake(0, topSize, width, height); [UIView animateWithDuration:animationDuration animations:^{ self.view.frame = toRect; }]; } } #pragma -mark -UITextFieldText Notification //增加键盘事件 -(void)addKeyboardNoti { NSLog(@"------addKeyboardNoti-------"); [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; } //移除键盘事件 -(void)removeKeyboardNoti { NSLog(@"------removeKeyboardNoti---------"); [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil]; [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end
今天爱站技术频道小编为大家描述了IOS开发中使用文本框进行键盘通知的操作方法,大家学习的如何?相信通过我们的介绍,大家都有了一定的了解,有任何的疑问欢迎像小编这边提出,我们会第一时间会您解答。