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


 

相关文章