UITextView,即多行文本输入框。
1、创建
self.inputUITextView = [[UITextViewalloc]initWithFrame:CGRectMake(0,60, 320,150)];
2、设置textView的属性
self.inputUITextView.textColor = [UIColorblueColor];
self.inputUITextView.font = [UIFontfontWithName:@"Arial"size:12.0];
self.inputUITextView.backgroundColor = [UIColorgrayColor];
self.inputUITextView.keyboardType =UIKeyboardTypeNumbersAndPunctuation;//键盘类型
self.inputUITextView.returnKeyType =UIReturnKeyYahoo; //返回键的类型
self.inputUITextView.scrollEnabled =YES;
self.inputUITextView.autoresizingMask =UIViewAutoresizingFlexibleHeight;//自适应高度
self.inputUITextView.clearsOnInsertion =YES;
3、设置代理,并放入view的目录树
self.inputUITextView.delegate =self;
[self.viewaddSubview:self.inputUITextView];
4、UITextView处理键盘的几种方式
1)使用键盘的return(返回键)
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if ([text isEqualToString:@"\n"]) {
[textView resignFirstResponder];
return NO;
}
return YES;
}
2)
如果app有导航条,可以利用顶部的导航条,加一个完成的button
self.navigationItem.rightBarButtonItem = [[UIBarButtonItemalloc]initWithBarButtonSystemItem:UIBarButtonSystemItemDonetarget:selfaction:@selector(leaveTextView)];
- (void)textViewDidEndEditing:(UITextView *)textView {
self.navigationItem.rightBarButtonItem =nil;
}
- (void) leaveTextView{
[self.inputUITextViewresignFirstResponder];
}
3)使用键盘的inputAccessoryView
UIToolbar *topView = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 30)];
topView.barStyle = UIBarStyleDefault;
UIBarButtonItem * doneButton = [[UIBarButtonItem alloc]initWithTitle:@"完成" style:UIBarButtonItemStyleDone target:self action:@selector(dismissKeyboard)];
[topView setItems:[NSArray arrayWithObjects:doneButton, nil]];
self.inputUITextView.inputAccessoryView = topView;
-(void)dismissKeyboard
{
[self.inputUITextView resignFirstResponder];
}
4)点击空白区域退出键盘
//添加点击手势,使得点击空白区域,使键盘收起,对应方法四
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(viewTaped:)];
[self.view addGestureRecognizer:tapGesture];
-(void)viewTaped:(UITapGestureRecognizer*)tapGesture
{
[self.inputUITextView resignFirstResponder];
}
详细的demo见: https://github.com/tingxuan/txUITextViewDemo