UITextField的使用

来源:互联网 发布:iphone设置网络权限 编辑:程序博客网 时间:2024/06/05 22:51

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}}”;

    }

0 0