TextView和TextField常见用法

2018-08-14  本文已影响0人  jimmywife
一、UITextView
textView可以实现多行输入的文本框,基本属性与UITextField相似,可以输入多行,可以滚动。
1.基本设置
UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(10, 10, 280, 80)];//初始化  
textView.backgroundColor=[UIColor colorWithRed:0.21 green:0.71 blue:0.51 alpha:0.5]; //背景色  
textView.scrollEnabled = YES;    //当文字超过视图的边框时是否允许滑动,默认为“YES”  
textView.editable = YES;        //是否允许编辑内容,默认为“YES”        
textView.font=[UIFont fontWithName:@"Arial" size:18.0]; //设置字体名字和字体大小;  
textView.returnKeyType = UIReturnKeyDefault;//return键的类型  
textView.keyboardType = UIKeyboardTypeDefault;//键盘类型  
textView.textAlignment = NSTextAlignmentLeft; //文本显示的位置默认为居左  
textView.dataDetectorTypes = UIDataDetectorTypeAll; //显示数据类型的连接模式(如电话号码、网址、地址等)  
textView.textColor = [UIColor blackColor];  
textView.delegate = self;    //设置代理方法的实现类  
textView.text = @"UITextView";//设置显示的文本内容  
[textView.layer setCornerRadius:10]; //设置圆角  
textView.tag = 1001; //设置tag值  
2.代理方法
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text;
可以控制输入文字的数量的代理方法,较为常用
//是否可以开始编辑  
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView;
//是否可以结束编辑  
- (BOOL)textViewShouldEndEditing:(UITextView *)textView;
//已经开始编辑  
- (void)textViewDidBeginEditing:(UITextView *)textView;
//已经结束编辑  
- (void)textViewDidEndEditing:(UITextView *)textView;
//内容变化  
- (void)textViewDidChange:(UITextView *)textView;
//光标变化  
- (void)textViewDidChangeSelection:(UITextView *)textView;
//当前输入的位置,当前输入的文字,是否可以继续输入  
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text;
//下面这俩不好理解,大概是验证url和文件名后缀的  
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange NS_AVAILABLE_IOS(7_0);
- (BOOL)textView:(UITextView *)textView shouldInteractWithTextAttachment:(NSTextAttachment *)textAttachment inRange:(NSRange)characterRange NS_AVAILABLE_IOS(7_0);
3.键盘弹出与回收
a.键盘回收
1.可以使用
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event  
{   //[self.view endEditing];
    UITextView *textView = (UITextView*)[self.view viewWithTag:1001];  
    [textView resignFirstResponder];  //取消成为第一响应者
}
2.如果是在TableView中写,可以使用TableView滑动时收回键盘的方法
self.tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;
其中keyboardDismissMode,是UIScrollView的属性,
它的值除了UIScrollViewKeyboardDismissModeNone,
还有一种是UIScrollViewKeyboardDismissModeInteractive,表示键盘可以随着手指下滑而移出屏幕
3.可以使用注册通知来移动键盘的位置,出现或者隐藏两个方法

详情可以查看:https://www.cnblogs.com/shenlaiyaoshi/p/5977668.html

二、UITextField
1.基本设置
UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)];
text.borderStyle = UITextBorderStyleRoundedRect;//设置边框样式,只有设置了才会显示边框样式
text.background = [UIImage imageNamed:@"dd.png"]; //设置背景 
text.disabledBackground = [UIImage imageNamed:@"cc.png"]; //设置背景
text.placeholder = @"password";//设置水印
text.clearButtonMode = UITextFieldViewModeAlways;//设置输入状态
text.secureTextEntry = YES;//设置密文输入
text.autocorrectionType = UITextAutocorrectionTypeNo;//是否纠错
text.clearsOnBeginEditing = YES; //再次编辑就清空
text.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;//内容垂直对齐
textFied.adjustsFontSizeToFitWidth = YES;//设置为YES时文本会自动缩小以适应文本窗口大小.默认是保持原来大小,而让长文本滚动
text.autocapitalizationType = UITextAutocapitalizationTypeNone; //首字母是否大写
text.returnKeyType =UIReturnKeyDone;//return 键变成什么样子
textView.keyboardAppearance=UIKeyboardAppearanceDefault;//键盘外观
text.rightView=image;
text.rightViewMode = UITextFieldViewModeAlways;//最右侧加图片,左侧类似
2.代理方法

详细的可以参考:https://blog.csdn.net/souprock/article/details/70598729

3.键盘的回收
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [text resignFirstResponder];    //主要是[receiver resignFirstResponder]在哪调用就能把receiver对应的键盘往下收
    return YES;
}
4.键盘类型
typedef enum {
UIKeyboardTypeDefault,       默认键盘,支持所有字符         
UIKeyboardTypeASCIICapable,  支持ASCII的默认键盘
UIKeyboardTypeNumbersAndPunctuation,  标准电话键盘,支持+*#字符
UIKeyboardTypeURL,            URL键盘,支持.com按钮 只支持URL字符
UIKeyboardTypeNumberPad,              数字键盘
UIKeyboardTypePhonePad,     电话键盘
UIKeyboardTypeNamePhonePad,   电话键盘,也支持输入人名
UIKeyboardTypeEmailAddress,   用于输入电子 邮件地址的键盘     
UIKeyboardTypeDecimalPad,     数字键盘 有数字和小数点
UIKeyboardTypeTwitter,        优化的键盘,方便输入@、#字符
UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable, 
} UIKeyboardType;
上一篇下一篇

猜你喜欢

热点阅读