UIKit 框架之UITextField

//

//  ViewController.m

//  UITextField

//

//  Created by City--Online on 15/5/20.

//  Copyright (c) 2015年 XQB. All rights reserved.

//



#import "ViewController.h"



@interface ViewController ()<UITextFieldDelegate>

@property(nonatomic,strong) UIDatePicker *datePicker;

@property(nonatomic,strong) UITextField *textField;

@end



@implementation ViewController



- (void)viewDidLoad {

    [super viewDidLoad];

    _textField=[[UITextField alloc]initWithFrame:CGRectMake(10, 100, 200, 40)];

    //文本内容

    _textField.text=@"text";

     //设置Text样式 具体参考:NSAttributedString.h

    NSMutableAttributedString *attributedString=[[NSMutableAttributedString alloc]initWithString:_textField.text];

    NSRange range=NSMakeRange(0, _textField.text.length);

    [attributedString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:20] range:range];

    [attributedString addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:range];

    _textField.attributedText=attributedString;

    //设置文本颜色

    _textField.textColor=[UIColor blueColor];

    //设置字体大小

    _textField.font=[UIFont systemFontOfSize:30];

    //对齐方式 枚举

    _textField.textAlignment=NSTextAlignmentLeft;

    //边框样式 枚举

    _textField.borderStyle=UITextBorderStyleRoundedRect;

    //设置默认的Text的样式

    _textField.defaultTextAttributes=@{NSForegroundColorAttributeName:[UIColor blackColor],NSUnderlineStyleAttributeName:@2};

    //text属性为空时显示

    _textField.placeholder=@"placeholder";

    //设置placeholder文本属性

    _textField.attributedPlaceholder=_textField.attributedText;

    //成为焦点时文本内容清空

    _textField.clearsOnBeginEditing=YES;

    //根据宽度自动适应字体大小

    _textField.adjustsFontSizeToFitWidth=YES;

    //最小的字体大小

    _textField.minimumFontSize=12;

    //设置代理

    _textField.delegate=self;

//    //设置背景图

//    textField.background=[UIImage imageNamed:@"1.jpg"];

//    //设置不可用时的背景图 若background未设置则忽略

//    textField.disabledBackground=[UIImage imageNamed:@"2.jpg"];

    

    //是否可以更改字符属性字典

    _textField.allowsEditingTextAttributes=YES;

    //属性字典

    _textField.typingAttributes=_textField.defaultTextAttributes;

    

    //设置清除按钮的显示样式

//    typedef NS_ENUM(NSInteger, UITextFieldViewMode) {

//        UITextFieldViewModeNever,

//        UITextFieldViewModeWhileEditing,

//        UITextFieldViewModeUnlessEditing,

//        UITextFieldViewModeAlways

//    };

    _textField.clearButtonMode=UITextFieldViewModeAlways;

    

    //左视图

    UIView *leftView=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 20, 40)];

    leftView.backgroundColor=[UIColor redColor];

    _textField.leftView=leftView;

    //设置左视图也不显示 需要设置leftViewMode

    _textField.leftViewMode=UITextFieldViewModeAlways;

    

    //右视图   与左视图一样

    UIView *rightView=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 20, 40)];

    rightView.backgroundColor=[UIColor blueColor];

    _textField.rightView=rightView;

    _textField.rightViewMode=UITextFieldViewModeAlways;

    

    //设置弹出视图

    _textField.inputView=self.inputView;

    //设置弹出辅助视图

    _textField.inputAccessoryView=self.inputAccessoryView;

    

    //设置是否允许再次编辑时在内容中间插入内容

    _textField.clearsOnInsertion=YES;

    

    //UITextFiled和 UITextView都遵循 UITextInputTraits协议,在UITextInputTraits协议中定义了设置键盘的属性

    

    //键盘类型  枚举

    _textField.keyboardType=UIKeyboardTypeNumbersAndPunctuation;

    //键盘Return键显示的文本,默认为”Return”,其他可选择的包括Go,Next,Done,Send,Google等

    _textField.returnKeyType=UIReturnKeyDone;

    //键盘外观

    _textField.keyboardAppearance=UIKeyboardAppearanceLight;

    //文本大小写样式

    _textField.autocapitalizationType=UITextAutocapitalizationTypeWords;

    //是否自动更正

    _textField.autocorrectionType=UITextAutocorrectionTypeYes;

    //拼写检查设置

    _textField.spellCheckingType=UITextSpellCheckingTypeYes;

    //是否在无文本时禁用Return键,默认为NO。若为YES,则用户至少输入一个字符后Return键才被激活

    _textField.enablesReturnKeyAutomatically=YES;

    //若输入的是密码,可设置此类型为YES,输入字符时可显示最后一个字符,其他字符显示为点

    _textField.secureTextEntry=YES;

    

    [self.view addSubview:_textField];

    

}

//UITextFieldDelegate

//点击输入框时触发的方法,返回YES则可以进入编辑状态,NO则不能

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField

{

    //return NO to disallow editing

    NSLog(@"点击输入框 textFieldShouldBeginEditing");

    return YES;

}

//开始编辑时调用的方法

- (void)textFieldDidBeginEditing:(UITextField *)textField

{

    NSLog(@"开始编辑 textFieldDidBeginEditing");

}

//将要结束编辑时调用的方法,返回YES则可以结束编辑状态,NO则不能

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField

{

    NSLog(@"将要结束编辑 textFieldShouldEndEditing");

    return YES;

}

//结束编辑调用的方法

- (void)textFieldDidEndEditing:(UITextField *)textField

{

     NSLog(@"结束编辑 textFieldDidEndEditing");

}

//输入字符时调用的方法

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

{

    NSLog(@"输入字符结束编辑 shouldChangeCharactersInRange");

    return YES;

}

//点击清除按钮时调用的函数,返回YES则可以清除,点击NO则不能清除

- (BOOL)textFieldShouldClear:(UITextField *)textField

{

    NSLog(@"点击清除按钮 textFieldShouldClear");

    return YES;

}

//点击return键触发的函数

- (BOOL)textFieldShouldReturn:(UITextField *)textField

{

    [_textField resignFirstResponder];

    NSLog(@"点击return键 textFieldShouldReturn");

    return YES;

}



-(UIView *)inputView

{

    if (!_datePicker) {

        _datePicker=[[UIDatePicker alloc]init];

        _datePicker.datePickerMode=UIDatePickerModeDate;

        _datePicker.date=[NSDate date];

//        [_datePicker addTarget:self action:@selector(valueChanged) forControlEvents:UIControlEventValueChanged];

        return _datePicker;

    }

    return _datePicker;

    

}

-(UIView *)inputAccessoryView

{

    UIToolbar *toolBar=[[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 44)];

    UIBarButtonItem *item=[[UIBarButtonItem alloc]initWithTitle:@"done" style:UIBarButtonItemStyleDone target:self action:@selector(done)];

    toolBar.items =[NSArray arrayWithObject:item];

    return toolBar;

    

}



-(void)valueChanged

{

    NSLog(@"valueChanged");

}

-(void)done

{

    [_textField resignFirstResponder];

    NSLog(@"%@",_datePicker.date);

}



- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}



@end

 UIKit 框架之UITextFieldUIKit 框架之UITextField

你可能感兴趣的:(UITextField)