第四章:第二节 UITextField和UITextView
step —1:UITextField
1、基本用法
1.声明
@property(nonatomic,strong) UITextField*textField;
2.准守代理
3.创建
self.textField= [[UITextFieldalloc] init];
4.设置属性
//代理
self.textField.delegate= self;
self.textField.frame= CGRectMake(20, 200, 200, 30);
//显示字体
self.textField.text= @"txt";
//字体颜色
self.textField.textColor= [UIColorblueColor];
//字体大小
self.textField.font= [UIFontsystemFontOfSize:16];
//字体对齐方式
self.textField.textAlignment= NSTextAlignmentCenter;
/*边框样式
UITextBorderStyleNone, 默认
UITextBorderStyleLine, 直线
UITextBorderStyleBezel,阴影
UITextBorderStyleRoundedRect 圆角
*/
self.textField.borderStyle= UITextBorderStyleLine;
//默认提示语
self.textField.placeholder= @"Enter text ";
//再次编辑清空
self.textField.clearsOnBeginEditing= YES;
//自适应大小
self.textField.adjustsFontSizeToFitWidth= YES;
//最小字体
self.textField.minimumFontSize= 0.0;
//秘语输入
self.textField.secureTextEntry= YES;
/*清空按钮模式
UITextFieldViewModeNever, 无
UITextFieldViewModeWhileEditing, 编辑时候出现
UITextFieldViewModeUnlessEditing, 除了编辑以外出现
UITextFieldViewModeAlways 一直出现
*/
self.textField.clearButtonMode= UITextFieldViewModeWhileEditing;
/*return 类型
UIReturnKeyDefault,
UIReturnKeyGo,
UIReturnKeyGoogle,
UIReturnKeyJoin,
UIReturnKeyNext,
UIReturnKeyRoute,
UIReturnKeySearch,
UIReturnKeySend,
UIReturnKeyYahoo,
UIReturnKeyDone,
UIReturnKeyEmergencyCall,
*/
self.textField.returnKeyType= UIReturnKeyDefault;
/*左视图
UITextFieldViewModeNever,
UITextFieldViewModeWhileEditing,
UITextFieldViewModeUnlessEditing,
UITextFieldViewModeAlways
*/
UIImageView*leftView = [[UIImageViewalloc] init];
leftView.bounds= CGRectMake(0, 0, 30, 30);
leftView.image= [UIImageimageNamed:@"Image"];
self.textField.leftView= leftView;
self.textField.leftViewMode= UITextFieldViewModeAlways;
//背景图
self.textField.background= [UIImageimageNamed:@"icon"];
//自定义键盘头视图
UIView*headView = [[UIViewalloc] init];
headView.bounds= CGRectMake(0, 0, self.view.frame.size.width, 40);
headView.backgroundColor= [UIColoryellowColor];
//self.textField.inputAccessoryView = headView;
//自定义键盘视图
UIView*keyView = [[UIViewalloc] init];
keyView.bounds= CGRectMake(0, 0, self.view.frame.size.width, 40);
keyView.backgroundColor= [UIColorredColor];
//self.textField.inputView = keyView;
[self.textFieldplaceholderRectForBounds:CGRectMake(100, 10, 50, 20)];
/*重写光标 默认提示语 leftView位置
- (CGRect)borderRectForBounds:(CGRect)bounds;
- (CGRect)textRectForBounds:(CGRect)bounds;
- (CGRect)placeholderRectForBounds:(CGRect)bounds;
- (CGRect)editingRectForBounds:(CGRect)bounds;
- (CGRect)clearButtonRectForBounds:(CGRect)bounds;
- (CGRect)leftViewRectForBounds:(CGRect)bounds;
- (CGRect)rightViewRectForBounds:(CGRect)bounds;
*/
5.添加视图
[self.viewaddSubview:self.textField];
6.代理方法
//控制当前输入框是否能被编辑
- (BOOL)textFieldShouldBeginEditing:(UITextField*)textField{
NSLog(@"-0----%s",__func__);
returnYES;
}
//当输入框开始时触发 ( 获得焦点触发)
- (void)textFieldDidBeginEditing:(UITextField*)textField{
NSLog(@"-1----%s",__func__);
}
//询问输入框是否可以结束编辑 ( 键盘是否可以收回)
- (BOOL)textFieldShouldEndEditing:(UITextField*)textField{
NSLog(@"--4---%s",__func__);
returnYES;
}
//当前输入框结束编辑时触发 ( 键盘收回之后触发 )
- (void)textFieldDidEndEditing:(UITextField*)textField{
NSLog(@"-5----%s",__func__);
}
//当输入框文字发生变化时触发 ( 只有通过键盘输入时 , 文字改变 , 触发 )
- (BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString*)string{
NSLog(@"-3----%s",__func__);
returnYES;
}
//控制输入框清除按钮是否有效 (yes, 有 ;no, 没有)
- (BOOL)textFieldShouldClear:(UITextField*)textField{
NSLog(@"-2----%s",__func__);
returnYES;
}
//控制键盘是否回收
- (BOOL)textFieldShouldReturn:(UITextField*)textField{
[textField resignFirstResponder];
NSLog(@"-6----%s",__func__);
returnYES;
}
2、特殊用法(后续更新)
step —1:UITextView
1、基本用法
1.声明
@property(nonatomic,strong) UITextView*textView;
2.准守代理
3.创建
self.textView= [[UITextViewalloc] init];
4.设置属性
//代理
self.textView.delegate= self;
self.textView.frame= CGRectMake(20, 260, 200, 100);
self.textView.backgroundColor= [UIColorlightGrayColor];
//显示字体
self.textView.text= @"UITextView supports the display of text using custom style information and also supports text editing. You typically use a text view to display multiple lines of text,010 - 6591917 such as when displaying the body of a large text document.";
//字体颜色
self.textView.textColor= [UIColorwhiteColor];
//字体大小
self.textView.font= [UIFontsystemFontOfSize:16];
//字体对齐方式
self.textView.textAlignment= NSTextAlignmentLeft;
//是否可以选中
self.textView.selectable= YES;
//选择范围
self.textView.selectedRange= NSMakeRange(4, 3);
//滚动到文本的某个段落
[self.textViewscrollRangeToVisible: NSMakeRange(150, 3)];
//是否允许再次编辑插入内容
self.textView.clearsOnInsertion= NO;
/*设定使电话号码、网址、电子邮件和符合格式的日期等文字变为链接文字
UIDataDetectorTypePhoneNumber = 1 << 0, // Phone number detection
UIDataDetectorTypeLink = 1 << 1, // URL detection
UIDataDetectorTypeAddress
*/
self.textView.dataDetectorTypes= UIDataDetectorTypeAll;
//return键的类型
self.textView.returnKeyType= UIReturnKeyDefault;
//键盘类型
self.textView.keyboardType= UIKeyboardTypeDefault;
//自定义键盘头视图
UIView*headView = [[UIViewalloc] init];
headView.bounds= CGRectMake(0, 0, self.view.frame.size.width, 40);
headView.backgroundColor= [UIColoryellowColor];
//self.textView.inputAccessoryView = headView;
//自定义键盘视图
UIView*keyView = [[UIViewalloc] init];
keyView.bounds= CGRectMake(0, 0, self.view.frame.size.width, 40);
keyView.backgroundColor= [UIColorredColor];
//self.textView.inputView = keyView;
5.添加视图
[self.viewaddSubview:self.textView];
6.代理方法
// 将要开始编辑
- (BOOL)textViewShouldBeginEditing:(UITextView*)textView{
NSLog(@"----%s",__func__);
returnYES;
}
// 将要结束编辑
- (BOOL)textViewShouldEndEditing:(UITextView*)textView{
NSLog(@"----%s",__func__);
returnYES;
}
// 开始编辑
- (void)textViewDidBeginEditing:(UITextView*)textView{
NSLog(@"---%s",__func__);
}
// 结束编辑
- (void)textViewDidEndEditing:(UITextView*)textView{
NSLog(@"---%s",__func__);
}
// 文本将要改变
- (BOOL)textView:(UITextView*)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString*)text{
NSLog(@"---%s",__func__);
//[NSString stringWithFormat:@"%lu/100",(unsigned long)range.location]; 字节统计
if(range.location>= 100){
return NO;
}elseif([text isEqualToString:@"\n"]) {
[textView resignFirstResponder];
returnNO;
}
returnYES;
}
// 文本发生改变
- (void)textViewDidChange:(UITextView*)textView{
NSLog(@"---%s",__func__);
}
// 焦点发生改变
- (void)textViewDidChangeSelection:(UITextView*)textView{
NSLog(@"----%s",__func__);
}
// 是否允许对文本中的URL进行操作
- (BOOL)textView:(UITextView*)textView shouldInteractWithURL:(NSURL*)URL inRange:(NSRange)characterRange interaction:(UITextItemInteraction)interaction NS_AVAILABLE_IOS(10_0){
NSLog(@"-----%s",__func__);
returnYES;
}
// 是否允许对文本中的富文本进行操作
- (BOOL)textView:(UITextView*)textView shouldInteractWithTextAttachment:(NSTextAttachment*)textAttachment inRange:(NSRange)characterRange interaction:(UITextItemInteraction)interaction NS_AVAILABLE_IOS(10_0){
NSLog(@"----%s",__func__);
returnYES;
}
2、特殊用法(后续更新)