初始化textfield并设置位置及大小
1 | UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)]; |
把textfield加到视图中
1 | [self.window addSubview:text]; |
设置边框样式
只有设置了才会显示边框样式
1 | text.borderStyle = UITextBorderStyleRoundedRect; |
设置输入框的背景颜色
此时设置为白色 如果使用了自定义的背景图片边框会被忽略掉
1 | text.backgroundColor = [UIColor whiteColor]; |
设置背景
1 | text.background = [UIImage imageNamed:@"dd.png"]; |
Placeholder
1 | text.placeholder = @"password"; |
设置输入框内容的字体样式和大小
1 | text.font = [UIFont fontWithName:@"Arial" size:20.0f]; |
设置字体颜色
1 | text.textColor = [UIColor redColor]; |
输入框中是否有个叉号
在什么时候显示,用于一次性删除输入框中的内容
1 | text.clearButtonMode = UITextFieldViewModeAlways; |
输入框设置文字
1 | text.text = @"一开始就在输入框的文字"; |
密文输入
1 | text.secureTextEntry = YES; |
是否纠错
1 | text.autocorrectionType = UITextAutocorrectionTypeNo; |
再次编辑就清空
1 | text.clearsOnBeginEditing = YES; |
内容对齐方式
1 | //水平 |
文本缩放
1 | //设置为YES时文本会自动缩小以适应文本窗口大小.默认是保持原来大小,而让长文本滚动 |
设置键盘的样式
1 | text.keyboardType = UIKeyboardTypeNumberPad; |
首字母是否大写
1 | text.autocapitalizationType = UITextAutocapitalizationTypeNone; |
Return键
1 | text.returnKeyType =UIReturnKeyDone; |
键盘外观
1 | textView.keyboardAppearance=UIKeyboardAppearanceDefault; |
最右侧加图片是以下代码
1 | UIImageView *image=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"right.png"]]; |
按return键键盘往下收
类要采用UITextFieldDelegate协议
1 | text.delegate = self; //声明text的代理是我,我会去实现把键盘往下收的方法 这个方法在UITextFieldDelegate里所以我们要采用UITextFieldDelegate这个协议 |
重写绘制行为
除了UITextField对象的风格选项,你还可以定制化UITextField对象,为他添加许多不同的重写方法,来改变文本字段的显示行为。这些方法都会返回一个CGRect结构,制定了文本字段每个部件的边界范围。以下方法都可以重写。
1 | – textRectForBounds: //重写来重置文字区域 |
委托方法
1 | - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{ |
当文本字段退出编辑模式时触发。通知的object属性存储了最终文本。
因为文本字段要使用键盘输入文字,所以下面这些事件发生时,也会发送动作通知
1 | UIKeyboardWillShowNotification //键盘显示之前发送 |
限制只能输入特定的字符
1 | (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ |
上面那个NUMBERS是一个宏,可以在文件顶部定义:
1 |
所以,如果你要限制输入英文和数字的话,就可以把这个定义为:
1 |
当然,你还可以在以上方法return之前,做一提示的,比如提示用户只能输入数字之类的。如果你觉得有需要的话。
限制只能输入一定长度的字符
1 | - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string; |
限制只能输入正整数
工具类方法
1 | ///判断字符串为正整数 |
代理方法
1 | func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { |