UITextField详解


2017.1.5

1. UITextField属性

_textField =  [[UITextField alloc] initWithFrame:CGRectMake(50, 100, 150, 20)];

文本内容     _textField.text = @"UITextField 详解"; 

设置Text样式 

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 orangeColor]  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 = 14;

设置背景图  textField.background = [UIImage imageNamed:@"image.jpg"];

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

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

是否可以更改字符属性字典_textField.allowsEditingTextAttributes = YES;

属性字典  _textField.typingAttributes = _textField.defaultTextAttributes;

设置清除按钮的显示样式  _textField.clearButtonMode = UITextFieldViewModeAlways;枚举

左视图 右视图

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

leftView.backgroundColor=[UIColor redColor];

_textField.leftView=leftView;

设置左视图也不显示 需要设置leftViewMode  _textField.leftViewMode=UITextFieldViewModeAlways;枚举

设置弹出视图 _textField.inputView = self.inputView;

设置弹出辅助视图  _textField.inputAccessoryView = self.inputAccessoryView;

设置是否允许再次编辑时在内容中间插入内容 _textField.clearsOnInsertion = YES;

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

键盘类型  枚举  _textField.keyboardType=UIKeyboardTypeNumbersAndPunctuation;枚举

键盘Return键显示的文本,默认为”Return”,其他可选择的包括Send,Next,,Go,Done,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;

2.UITextFieldDelegate

设置代理  _textField.delegate  =  self;

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

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

        returnYES;

}

开始编辑时调用的方法

- (void)textFieldDidBeginEditing:(UITextField *)textField  {

}

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

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

 returnYES;

}

结束编辑调用的方法

- (void)textFieldDidEndEditing:(UITextField *)textField  {

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

}

输入字符时调用的方法

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

returnYES;

}

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

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

    returnYES;

}

点击return键触发的函数

- (BOOL)textFieldShouldReturn:(UITextField *)textField  {

    [_textField resignFirstResponder];//失去第一响应

returnYES;

}

更多请查看官方Api

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容