UITextField属性代理

UITextField是IOS开发中用户交互中重要的一个控件,常被用来做账号密码框,输入信息框等。

初始化一个文字框:

?
1
UITextField * textField = [[UITextField alloc]initWithFrame:CGRectMake(100, 30, 100, 100)];

设置和获取文字框文字:

@property(nonatomic,copy)  NSString *text; 

通过AttributedString创建和获取文字:

@property(nonatomic,copy)   NSAttributedString  *attributedText;

设置字体颜色属性:

@property(nonatomic,retain) UIColor  *textColor;

设置字体属性:

@property(nonatomic,retain) UIFont  *font;

设置字体对齐格式:

@property(nonatomic)NSTextAlignment     textAlignment; 

设置输入框风格:

@property(nonatomic) UITextBorderStyle    borderStyle; 

这个风格是一个枚举,如下:

?
1
2
3
4
5
6
7
8
9
10
typedef  NS_ENUM(NSInteger, UITextBorderStyle) {
     //没有任何边框
     UITextBorderStyleNone,
     //线性边框
     UITextBorderStyleLine,
     //阴影效果边框
     UITextBorderStyleBezel,
     //原型效果边框
     UITextBorderStyleRoundedRect
};

设置默认字体属性

@property(nonatomic,copy)  NSDictionary *defaultTextAttributes;

这个属性的设置会影响到全部字体的属性。

设置缺省时显示的灰度字符串

@property(nonatomic,copy)  NSString  *placeholder;  

通过AttributedString设置缺省字符串

@property(nonatomic,copy)  NSAttributedString  *attributedPlaceholder;

设置是否在开始编辑时清空输入框内容

@property(nonatomic) BOOL  clearsOnBeginEditing;

设置字体大小是否随宽度自适应(默认为NO)

@property(nonatomic)  BOOL   adjustsFontSizeToFitWidth; 

设置最小字体大小

@property(nonatomic) CGFloat    minimumFontSize; 

设置背景图片(会被拉伸)

@property(nonatomic,retain) UIImage *background; 

设置禁用时的背景图片

@property(nonatomic,retain) UIImage  *disabledBackground;

是否正在编辑(只读属性)

@property(nonatomic,readonly,getter=isEditing) BOOL editing;

是否允许更改字符属性字典

@property(nonatomic) BOOL allowsEditingTextAttributes;

设置属性字典

@property(nonatomic,copy) NSDictionary *typingAttributes;

设置清除按钮的显示模式

@property(nonatomic) UITextFieldViewMode  clearButtonMode;

这是一个枚举,如下:

?
1
2
3
4
5
6
7
8
9
10
typedef  NS_ENUM(NSInteger, UITextFieldViewMode) {
     //从不显示
     UITextFieldViewModeNever,
     //编辑的时候显示
     UITextFieldViewModeWhileEditing,
     //非编辑的时候显示
     UITextFieldViewModeUnlessEditing,
     //任何时候都显示
     UITextFieldViewModeAlways
};

设置输入框左边的view

@property(nonatomic,retain) UIView *leftView;

设置输入框左视图的显示模式

@property(nonatomic)  UITextFieldViewMode  leftViewMode; 

设置输入框右边的view

@property(nonatomic,retain) UIView *rightView; 

设置输入框右视图的显示模式

@property(nonatomic)  UITextFieldViewMode  rightViewMode; 

设置输入框成为第一响应时弹出的视图和辅助视图(类似键盘)

@property (readwrite, retain) UIView *inputView;             
@property (readwrite, retain) UIView *inputAccessoryView;

这个属性设置是否允许再次编辑时在内容中间插入内容

@property(nonatomic) BOOL clearsOnInsertion;

注销第一响应(収键盘)

- (BOOL)endEditing:(BOOL)force;

UITextFieldDelegate 代理中的方法

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

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField; 

开始编辑时调用的方法    
- (void)textFieldDidBeginEditing:(UITextField *)textField;   

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

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField;  

结束编辑调用的方法   
- (void)textFieldDidEndEditing:(UITextField *)textField;   

输入字符时调用的方法      
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;  

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

- (BOOL)textFieldShouldClear:(UITextField *)textField;

点击return键触发的函数           
- (BOOL)textFieldShouldReturn:(UITextField *)textField;  


– textRectForBounds:      //重写来重置文字区域

– drawTextInRect:          //改变绘文字属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了.

– placeholderRectForBounds:  //重写来重置占位符区域

– drawPlaceholderInRect:  //重写改变绘制占位符属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了.

– borderRectForBounds:  //重写来重置边缘区域

– editingRectForBounds:  //重写来重置编辑区域

– clearButtonRectForBounds:  //重写来重置clearButton位置,改变size可能导致button的图片失真

– leftViewRectForBounds:

– rightViewRectForBounds:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值