ios中键盘处理适合ipad 和iphone
2013-08-02 16:32 甘超波 阅读(421) 评论(0) 编辑 收藏 举报[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasShown:) name:UIKeyboardDidShowNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasHidden:) name:UIKeyboardDidHideNotification object:nil]; ======= -(void)keyboardWasShown:(NSNotification*)aNotification{ NSDictionary *info=[aNotification userInfo]; CGRect KeyBoardrect=[info[UIKeyboardBoundsUserInfoKey] CGRectValue]; int curve=[info[UIKeyboardAnimationCurveUserInfoKey] intValue]; CGFloat duration=[info[UIKeyboardAnimationDurationUserInfoKey] floatValue]; UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow]; UIView *firstResponder = [keyWindow performSelector:@selector(firstResponder)]; if ([NSStringFromClass([firstResponder class]) isEqualToString:@"UITextView"]) { CGFloat height=self.view.bounds.size.height;//view的高度 CGFloat y=self.remarksTextView.frame.origin.y+KHeight;//文本框的高度 CGFloat keyboardheight=KeyBoardrect.size.height+44;//键盘高度--》中文高度44 CGFloat h=height-y-keyboardheight; NSLog(@"%@--keyboard->",info); NSLog(@"height=%f-- -->",height); if(h<0){ [UIView beginAnimations:nil context:nil]; [UIView setAnimationCurve:curve]; [UIView setAnimationDuration:duration]; CGRect rect=self.view.frame; rect.origin.y+=h; self.view.frame=rect; [UIView commitAnimations]; } } } -(void) keyboardWasHidden:(NSNotification*)aNotification { NSDictionary *info=[aNotification userInfo]; int curve=[info[UIKeyboardAnimationCurveUserInfoKey] intValue]; CGFloat duration=[info[UIKeyboardAnimationDurationUserInfoKey] floatValue]; [UIView beginAnimations:nil context:nil]; [UIView setAnimationCurve:curve]; [UIView setAnimationDuration:duration]; self.view.frame=_lastRect; [UIView commitAnimations]; }
目前我正在专注NLP,请立刻加微信/QQ号 546611623, 免费送你原创《NLP高级执行师》高清视频