#pragma mark 设置textView并在设置view随键盘的移动而移动
-(void)setTextView
{
[self.myTextView.layer setCornerRadius:5.0];
//监听键盘弹出
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardWillShowNotification object:nil];
//监听键盘消失
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidHidden:) name:UIKeyboardWillHideNotification object:nil];
UIToolbar * topView = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 45)];
[topView setBarStyle:UIBarStyleBlackTranslucent];
//定义两个flexibleSpace的button,放在toolBar上,这样完成按钮就会在最右边
UIBarButtonItem * button1 =[[UIBarButtonItem alloc]initWithBarButtonSystemItem: UIBarButtonSystemItemFlexibleSpace target:self action:nil];
UIBarButtonItem * button2 = [[UIBarButtonItem alloc]initWithBarButtonSystemItem: UIBarButtonSystemItemFlexibleSpace target:self action:nil];
//定义完成按钮
UIBarButtonItem * doneButton = [[UIBarButtonItem alloc]initWithTitle:@"完成" style:UIBarButtonItemStyleDone target:self action:@selector(resignKeyboard)];
//在toolBar上加上这些按钮
NSArray * buttonsArray = [NSArray arrayWithObjects:button1,button2,doneButton,nil];
[topView setItems:buttonsArray];
[self.myTextView setInputAccessoryView:topView];
}
#pragma mark 隐藏键盘
-(void)resignKeyboard
{ //取消键盘为第一相应者
[self.myTextView resignFirstResponder];
}
#pragma mark 键盘弹出View向上移动
-(void)keyboardDidShow:(NSNotification *)notification
{
NSDictionary *userInfo = [notification userInfo];
NSValue *aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
CGRect keyboardRect = [aValue CGRectValue];
int height = keyboardRect.size.height; //获取键盘高度
CGContextRef context = UIGraphicsGetCurrentContext();
//开始播放动画
[UIView beginAnimations:nil context:context];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
[UIView setAnimationDuration:0.3];
[self.myView setFrame:CGRectMake(0,-height, 320, 480)];
[UIView commitAnimations];
}
#pragma mark 键盘消失View向下移动
-(void)keyboardDidHidden:(NSNotification *)notification
{
CGContextRef context = UIGraphicsGetCurrentContext();
//开始播放动画
[UIView beginAnimations:nil context:context];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
[UIView setAnimationDuration:0.3];
[self.myView setFrame:CGRectMake(0,0, 320, 480)];
[UIView commitAnimations];
}