/** UITextField是一个文本框,用于输入编辑文本
UILabel 主要是字体呈现,不具备字体编辑功能 */
UITextField *textField = [[UITextField alloc]init];
textField.delegate = self;//添加协议
/* 边框borderStyle
UITextBorderStyleNone:默认情况下状态,无边框
UITextBorderStyleLine:线性边框
UITextBorderStyleBezel:尖角的边框
UITextBorderStyleRoundedRect:圆角边框
*/
textField.borderStyle = UITextBorderStyleRoundedRect;
// ⚠️因为间接继承自UIView,所以可以通过layer来设置边框
1.文字的内容
textField.text = @"how are you,i am sly";
2.文字的相关属性:颜色,字体,大小,对齐方式等等
textField.textColor = [UIColor blueColor];
int i = (int)[UIFont familyNames].count;
textField.font = [UIFont fontWithName:[UIFont familyNames][i-2] size:20];
// 字体居上(默认上下居中)UITextField继承自UIControl,此类中有一个属性contentVerticalAlignment
textField.contentVerticalAlignment = UIControlContentVerticalAlignmentTop;
// 字体居左(默认居左)
textField.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
//设置为YES时文本会自动缩小以适应文本窗口大小.默认是保持原来大小,而让长文本滚动
textField.adjustsFontSizeToFitWidth = YES;
//再次编辑就清空
textField.clearsOnBeginEditing = YES;
/*其他属性
*1.清除按钮,即右方是否出现x号
*2.placeholder,当输入框没有内容时,水印提示
*3.secureTextEntry 密文显示
*/
textField.clearButtonMode = UITextFieldViewModeAlways;
/*
UITextFieldViewModeNever:从不出现
UITextFieldViewModeWhileEditing:编辑是出线
UITextFieldViewModeUnlessEditing:不编辑时出现
UITextFieldViewModeAlways:总是出现
*/
textField.placeholder = @"please input your phoneNumber";
//设置左视图
UIView* leftview = [[UIView
alloc]initWithFrame:CGRectMake(0,0,100,100)];//只有宽度起到了作用
textField.leftView = leftview;
leftview.backgroundColor = [UIColor purpleColor];
//要设置左视图模式
textField.leftViewMode = UITextFieldViewModeAlways;
//还可以设置右视图textField.rightView = rightView;
textField.rightViewMode = UITextFieldViewModeAlways;
//这个右视图模式会影响清除按钮模式
17设置滚动
text2.font= [UIFontsystemFontOfSize:30];//可以设置文字大小
text2.adjustsFontSizeToFitWidth= YES;//默认是NO YES当充满边框时,文字会缩小,当小到⼀一定程度时仍然会滚动;自适应宽度;
//设置滚动时最小字号(与滚动相关)(前提:要比设置的字体小,否则没有意义)
text2.minimumFontSize= 20;(没有设置这⼀一项文字也会缩小和滚动)
18.设置return键
text2.returnKeyType = UIReturnKeyGoogle;search
typedef enum {
UIReturnKeyDefault,默认 灰色按钮,标有Return
UIReturnKeyGo,标有Go的蓝色按钮
UIReturnKeyGoogle,标有Google的蓝色按钮,用语搜索
UIReturnKeyJoin,标有Join的蓝色按钮
UIReturnKeyNext,标有Next的蓝色按钮
UIReturnKeyRoute,标有Route的蓝色按钮
UIReturnKeySearch,标有Search的蓝色按钮
UIReturnKeySend,标有Send的蓝色按钮
UIReturnKeyYahoo,标有Yahoo的蓝色按钮
UIReturnKeyYahoo,标有Yahoo的蓝色按钮
UIReturnKeyEmergencyCall,紧急呼叫按钮
} UIReturnKeyType;
19.首字母是否大写
text2.autocapitalizationType=
UITextAutocapitalizationTypeAllCharacters;//所有字母大写
typedef enum {UITextAutocapitalizationTypeNone, 不自动大写
UITextAutocapitalizationTypeWords,单词首字母大写
UITextAutocapitalizationTypeSentences,句子的首字母大写
UITextAutocapitalizationTypeAllCharacters,所有字母都大写
二 关于文本编辑框设置代理
a.//是否可以进入编辑模式(是否可进入输入状态)
- (BOOL)textFieldShouldBeginEditing:(UITextField
*)textField{
} UITextAutocapitalizationType;
/************************************/
return YES;//NO进入不了编辑模式}
b.//进入编辑模式
- (void)textFieldDidBeginEditing:(UITextField*)textField{
NSLog(@"进入编辑模式时调用");}
c.//是否退出编辑模式(是否可以结束输入状态)
- (BOOL)textFieldShouldEndEditing:(UITextField
*)textField{return YES;//NO退出不了编辑模式
}
d.//退出编辑模式//结束输入状态后调用
- (void)textFieldDidEndEditing:(UITextField*)textField{
NSLog(@"退出编辑模式");}
e.//是否可以点击清除按钮
- (BOOL)textFieldShouldClear:(UITextField*)textField{
//textField.text = @"已经清除";return NO;//NO不清除
}
f. //点击键盘上Return按钮时候调用
- (BOOL)textFieldShouldReturn:(UITextField*)textField{
//官方 取消第⼀一响应者(就是退出编辑模式收键盘)
[textField resignFirstResponder];
return YES;
}
g.//当输入任何字符时,代理调用该方法
-(BOOL)textField:(UITextField *)fieldshouldChangeCharactersInRange:(NSRange)rangereplacementString:(NSString *)string
//当输入任何字符时,代理调用该方法,如果返回YES则这次输入可以成功,如果返回NO,不能输入成功//range表示光标位置,只有location,length == 0;//string表示这次输入的字符串。
{
NSLog(@"range = %@ string= %@",NSStringFromRange(range),string);
return str.length < 10;//textField.text超过了10个字符,返回NO,不让输入成功。(最多输入10个)
//textField.text输入后不到10个字符,返回YES,使输入成功。return YES;
}