UITextField的基本使用
1. 创建UITextField
UITextField *textField = [[UITextField alloc] initWithFrame:(CGRectMake(0, 224, SCREEN_Width, 40))]; 初始化
2. UITextField 属性
文本框文本内容(显示的内容)
textField.text = @"请输入";
textField.delegate = self; 签订代理为self
textField.placeholder = @"请输入"; 设置缺省时显示的灰度字符串(text属性没有值的时候显示的占位字符串)
attributedText(NSAttributedString) 可以通过富文本来进行创建和获取文本内容
attributedPlaceholder(NSAttributedString) 通过AttributedString设置缺省字符串
textField.textColor = [UIColor greenColor]; 设置文本内容字体颜色
textField.textAlignment = NSTextAlignmentCenter; 设置文本内容居中(NSTextAlignmentLeft 居左, NSTextAlignmentRight 居右)
textField.font = [UIFont systemFontOfSize:12]; 设置文本内容字体大小
textField.borderStyle = UITextBorderStyleNone;
UITextBorderStyle 枚举类型
UITextBorderStyleNone 没有热河边框
UITextBorderStyleLine 线性边框
UITextBorderStyleBezel 阴影效果边框
UITextBorderStyleRoundedRect 原型效果边框
clearsOnBeginEditing(BOOL) (设置是否在开始编辑时清空输入框内容)
adjustsFontSizeToFitWidth(BOOL) 设置字体大小是否跟随宽度自适应(默认为NO)
minimumFontSize(CGFloat) 设置最小字体大小
background(UIImage) 设置背景图片 (会被拉伸)
disabledBackground(UIImage) 设置禁用时的背景图片
editing (BOOL) 是否正在编辑(只读属性)
allowsEditingTextAttributes(BOOL) 是否允许更改字符属性字典
typingAttributes(NSDictionary) 设置属性字典
clearButtonMode(UITextFieldViewMode) 设置清除按钮的显示模式
UITextFieldViewMode 枚举类型
UITextFieldViewModeNever 从不显示
UITextFieldViewModeWhileEditing 编辑的时候显示
UITextFieldViewModeUnlessEditing 非编辑的时候显示
UITextFieldViewModeAlways 任何时候都显示
leftView(UIView) 设置输入框左边的view
rightView(UIView) 设置输入框右边的view
rightViewMode(UITextFieldViewMode) 设置输入框右视图的显示模式
inputView or inputAccessoryView (UIView) 设置输入框成为第一响应时弹出的视图和辅助视图(类似键盘)
clearsOnInsertion(BOOL) 这个属性设置是否允许再次编辑时在内容中间插入内容
UIKeyboardType keyboardType枚举类型键盘类型
UIKeyboardTypeDefault 默认键盘:支持所有字符
UIKeyboardTypeASCIICapable 支持ASCII的默认键盘
UIKeyboardTypeNumbersAndPunctuation 标准电话键盘,支持+*#等符号
UIKeyboardTypeURL URL键盘,有.com按钮;只支持URL字符
UIKeyboardTypeNumberPad 数字键盘
UIKeyboardTypePhonePad 电话键盘
UIKeyboardTypeNamePhonePad 电话键盘,也支持输入人名字
UIKeyboardTypeEmailAddress 用于输入电子邮件地址的键盘
[self.viewaddSubview:textField]; 添加显示输入框
3. UITextField代理(UITextFieldDelegate)方法已经键盘响应与注销方法
[textField resignFirstResponder]; 设置textfield为第一响应这(回收键盘)
[textField becomeFirstResponder]; 是否需要进入页面就输入框就处于开始编辑状态
- (BOOL)endEditing:(BOOL)force; 注销第一响应(収键盘)
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField; 点击输入框时触发的方法,返回YES则可以进入编辑状态,NO则不能。
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField; 将要结束编辑时调用的方法,返回YES则可以结束编辑状态,NO则不能
- (void)textFieldDidBeginEditing:(UITextField *)textField; 开始编辑时调用的方法
- (void)textFieldDidEndEditing:(UITextField *)textField; 结束编辑调用的方法
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string; 当输入框内字符发生变化时时调用的方法
- (BOOL)textFieldShouldClear:(UITextField *)textField; 点击清除按钮时调用的函数,返回YES则可以清除,返回NO则不能清除
- (BOOL)textFieldShouldReturn:(UITextField *)textField; 点击键盘上的return触发的方法
4. 拓展UITextField限制字数
- (BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString: (NSString*)string{
NSIntegermaxLength = 6;//设置限制字数
if(textField.tag ==100) {
NSString* toBeString = [textField.text stringByReplacingCharactersInRange:range withString:string];
if (toBeString.length > maxLength && range.length! = 1){
textField.text = [toBeString substringToIndex:maxLength];
returnNO;
}}returnYES;}
5. 回收键盘点击空白self.view
-(void)touchesBegan:(NSSet *)toucheswithEvent:(UIEvent*)event{
[self.textField resignFirstResponder];
}