您的位置:首页 > 产品设计 > UI/UE

UITextField的使用

2015-11-30 12:24 555 查看

UITextField

1.UITextField的基本使用

基本使用

UITextField (文本区域) 是一个文本输入框控件,主要是用来文字输入

UITextField 的创建

简述: 一般情况下UITextField定义, 创建的时候直接使用alloc+init 创建即可,然后再定义大小和位置。或者使用alloc+initWithFrame创建,以下为创建代码

代码

UITextField *textField=[[UITextField alloc]initWithFrame:CGRectMake(100, 100, 120, 30)];
//边框风格
textField.borderStyle=UITextBorderStyleRoundedRect; //圆角
//    UITextBorderStyleNone,    //无边框
//    UITextBorderStyleLine,    //线性边框
//    UITextBorderStyleBezel,   //直角
//    UITextBorderStyleRoundedRect  //圆角
[self.view addSubview:textField];


说明:

(1)创建UITextField: UITextField创建的方法一般常用 alloc+initWithFrame组合, 就是在创建的同时传入frame位置

(2) UITextField属性默认值为nil, 通过键盘键入值

(3)frame属性类型为CGRect, 默认值为{{0, 0}, {0, 0}}, 一般使用CGRectMake函数创建一个CGRect结构体设置值

(4)每个视图控制器中包含一个view, 使用self.view引用这个视图, 每个视图中有一个方法addSubview, 利用这个方法可以把其他视图添加到这个界面上显示

以上代码效果图



键盘代理和回收(别忘了设置代理)

简述:通过键盘想UITextField中键入值时键盘会自动弹出,但是,当内容输入完成时需要设置键盘的收回。对于界面: 知道如何如理输入完成事件,但不知道输入框输入完成;对于输入框: 自己知道什么时候输入完成,但不知道如何处理,所以就需要设置代理实现,让键盘在完成输入后放弃作为第一响应者。

代码

1.//添加代理
@interface RootViewController () <UITextFieldDelegate>

2. //设置代理
textField.delegate = self;

3. //添加放弃第一响应者的方法
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
//放弃作为第一响应者
[textField resignFirstResponder];

return YES; //暂时return
}


2.UITextField的属性设置

文本字体

代码

//设置字体大小
//label.font = [UIFont systemFontOfSize:24];
label.font = [UIFont boldSystemFontOfSize:24];
label.font = [UIFont fontWithName:@"Menlo" size:24];
//查看所有字体
NSLog(@"fonts = %@",[UIFont familyNames]);


说明:

使用UITextField控件的font属性可以为标签设置字体, 这个属性的类型是UIFont, 默认值为nil, 默认的字体系统17号字体, 可以使用[UIFont systemFontOfSize:24]创建一个指定字体大小的字体对象, 可以使用 [UIFont fontWithName:@”Menlo” size:24]创建一个指定字体名字和字体大小的字体对象

以上代码效果图



设置文本颜色

代码

label.textColor = [UIColor redColor];


说明:

使用UITextField控件的textColor属性为标签设置文本颜色, 这个属性的类型是UIColor, 需要传入一个UIColor对象作为值, 默认值为nil, 默认的颜色为black黑色, 常见的颜色有红色 [UIColor redColor], [UIColor blueColor], [UIColor greenColor]等

以上代码效果图



设置密码输入键盘

代码

//添加密码键盘
UITextField *passwordTextField=[[UITextField alloc]initWithFrame:CGRectMake(80, 160, 160, 30)];
passwordTextField.borderStyle=UITextBorderStyleRoundedRect;
passwordTextField.delegate=self;
[self.view addSubview:passwordTextField];
//设置键盘类型 (数字键盘)
passwordTextField.keyboardType=UIKeyboardTypeNumberPad;

//以下是一些键盘的样式
UIReturnKeyDefault, 默认 灰色按钮,标有Return
UIReturnKeyGo,     标有Go的蓝色按钮
UIReturnKeyGoogle,标有Google的蓝色按钮,用语搜索
UIReturnKeyJoin,标有Join的蓝色按钮
UIReturnKeyNext,标有Next的蓝色按钮
UIReturnKeyRoute,标有Route的蓝色按钮
UIReturnKeySearch,标有Search的蓝色按钮
UIReturnKeySend,标有Send的蓝色按钮
UIReturnKeyYahoo,标有Yahoo的蓝色按钮
UIReturnKeyYahoo,标有Yahoo的蓝色按钮
UIReturnKeyEmergencyCall, 紧急呼叫按钮


说明:

UITextField控件的输入可能是数字,所以UITextField的输入键盘有多种类型,使用keyboardType属性来选择输入键盘的种类。

以上代码效果图



设置输入类型

代码

//密文输入
passwordTextField.secureTextEntry=YES;


说明:

当UITextField输入密码之类的时候,要求保密,所以就要使输入的内容不能显示,打开UITextField的密文输入,将secureTextEntry设置为YES就可以输入内容不显示了

以上代码效果图



设置清除模式

代码

//设置键盘清除模式
//全部清除
passwordTextField.clearButtonMode=UITextFieldViewModeAlway;
//其他枚举值
UITextFieldViewModeNever,
UITextFieldViewModeWhileEditing,
UITextFieldViewModeUnlessEditing,
UITextFieldViewModeAlways


说明:

当UITextField中输入错误后或者要跟换输入内容时删除所输入的内容,通过UITextField的clearButtonMode这个方法选择不同的清除模式,默认是逐个删除,这是一个枚举类型的的值,当选择删除时会有一个按钮出现。

设置空白提示

代码

//设置空白输入提示
textField.placeholder=@"请输入用户名";
passwordTextField.placeholder=@"请输入密码";


说明:

UITextField在输入之前可以在文本框中用灰色的文本提示要输入的内容,使用placeholder这个方法设置,他的类型是NSString类型,可以直接赋值。

以上代码效果图



设置是否自动大写

代码

//取消自动大写
textField.autocapitalizationType= UITextAutocapitalizationTypeNone;


说明:

UITextField中输入文本是可以可以将首字母自动大写,通过设置UITextField的autocapitalizationType方法设置,该方法的的值也是一个枚举值,开方法还可以对单词进行自动纠正;通过设置其值等于UITextAutocapitalizationTypeNone关闭,该方法的设置与自动修正单词的方法设置一样。

是否自动显示修正后的单词

代码

//取消单词自动修正
textField.autocorrectionType=UITextAutocapitalizationTypeNone;


设置文本对齐方式

代码

//设置对齐方式
textField.textAlignment=NSTextAlignmentRight;


说明:

UITextField中输入文本后,文本以不同的样式显示。通过textAlignment方法显示,其值也是一个枚举,通过直接赋值进行设置,它的值有NSTextAlignmentLeft,NSTextAlignmentCenter,NSTextAlignmentRight,NSTextAlignmentJustified,NSTextAlignmentNatural这几种类型。

以上代码效果图



设置背景图片

代码

//设置输入框背景
//在没有边框的模式下才会显示、
textField.borderStyle=UITextBorderStyleNone;
textField.background=[UIImage imageNamed:@"back.png"];


说明:

UITextField的文本框中可以设置一个背景图片,但是设置背景图片的时候只能是没有边框的模式下,即textField.borderStyle=UITextBorderStyleNone的情况下,通过background这一方法进行设置,它是一个UIImage类型的,只能通过添加一个image对象进行设置;设置image的方法有不同,通常根据需要进行选择。

以上代码效果图



左侧提示图片

代码

//输入框内显示显示图片
UIImageView *headView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 25, 25)];
headView.image =[UIImage imageNamed:@"001.png"];
textField.leftView=headView;
textField.leftViewMode=UITextFieldViewModeAlways;


说明:

UITextField的背景可以添加一个image对象,所以也可以在UITextField上添加image对象,该方法是先通过先在UITextField上添加一个ImageView,然后添加图片,通过leftView或者rightView方法确定图片添加的位置,然后再用对应的ViewModel来确定显示的方式,其值是枚举类型,包括 UITextFieldViewModeNever,UITextFieldViewModeWhileEditing,

UITextFieldViewModeUnlessEditing,UITextFieldViewModeAlways对其直接赋值即可。

以上代码效果图



3.UITextField的键盘通知事件

键盘通知

当文本View(如UITextField,UITextView, UIWebView内的输入框)进入编辑模式成为first responder时,系统会自动显示键盘。成为firstresponder可能由用户点击触发,也可向文本View发送becomeFirstResponder消息触发。当文本视图退出first responder时,键盘会消失。文本View退出first responder可能由用户点击键盘上的Done或Return键结束输入触发,也可向文本View发送resignFirstResponder消息触发。当键盘显示或消失时,系统会发送相关的通知,通知消息 NSNotification中的 userInfo字典中包含键盘的位置和大小信息,对应的key为

UIKeyboardFrameBeginUserInfoKey

UIKeyboardFrameEndUserInfoKey

UIKeyboardAnimationDurationUserInfoKey

UIKeyboardAnimationCurveUserInfoKey,UIKeyboardFrameBeginUserInfoKey,UIKeyboardFrameEndUserInfoKey对应的Value是个NSValue对象,内部包含CGRect结构,分别为键盘起始时和终止时的位置信息。

UIKeyboardAnimationCurveUserInfoKey对应的Value是NSNumber对象,内部为UIViewAnimationCurve类型的数据,表示键盘显示或消失的动画类型。

UIKeyboardAnimationDurationUserInfoKey对应的Value也是NSNumber对象,内部为double类型的数据,表示键盘h显示或消失时动画的持续时间。

即将显示通知

在UIKeyboardWillShowNotification,UIKeyboardDidShowNotification通知中的userInfo内容为

userInfo = {

UIKeyboardAnimationCurveUserInfoKey = 0;

UIKeyboardAnimationDurationUserInfoKey = “0.25”;

UIKeyboardBoundsUserInfoKey = “NSRect: {{0, 0}, {320, 216}}”;

UIKeyboardCenterBeginUserInfoKey = “NSPoint: {160, 588}”;

UIKeyboardCenterEndUserInfoKey = “NSPoint: {160, 372}”;

UIKeyboardFrameBeginUserInfoKey = “NSRect: {{0, 480}, {320, 216}}”;

UIKeyboardFrameChangedByUserInteraction = 0;

UIKeyboardFrameEndUserInfoKey = “NSRect: {{0, 264}, {320, 216}}”;

}

即将消失通知

在UIKeyboardWillHideNotification,UIKeyboardDidHideNotification通知中的

userInfo内容为:

userInfo = {

UIKeyboardAnimationCurveUserInfoKey = 0;

UIKeyboardAnimationDurationUserInfoKey = “0.25”;

UIKeyboardBoundsUserInfoKey = “NSRect: {{0, 0}, {320, 216}}”;

UIKeyboardCenterBeginUserInfoKey = “NSPoint: {160, 372}”;

UIKeyboardCenterEndUserInfoKey = “NSPoint: {160, 588}”;

UIKeyboardFrameBeginUserInfoKey = “NSRect: {{0, 264}, {320, 216}}”;

UIKeyboardFrameChangedByUserInteraction = 0;

UIKeyboardFrameEndUserInfoKey = “NSRect: {{0, 480}, {320, 216}}”;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: