UIKit框架-基础视图-UITextField-输入框

UITextField 输入框


属性
  • 创建
UITextField *textfield = [[UITextField alloc] initWithFrame:CGRectMake(20,20,130,30)];
  • BorderStyle————边框样式

    UITextBorderStyleNone 无样式

    UITextBorderStyleLine

    UITextBorderStyleBezel

    UITextBorderStyleRoundedRect 圆角

  • backgroundColor————输入框背景颜色
textfield.backgroundColor = [UIColor whiteColor];
  • background,disableBackground————添加背景图片
textfield.background = [UIImage imageNamed:@""];
textfield.disabledBackground = [UIImage imageNamed:@""]; //设置enable为NO时的背景图片
  • placeholder————输入框没有内容时水印提示
textfield.placeholder = @"";
  • font————设置输入框内容的字体样式和大小
textfield.font = [UIFont fontWithName:@"" size:20];
  • textColor————字体颜色
textfield.textColor = [UIColor redColor];
  • clearButtonMode————输入框中的叉;
text.clearButtonMode = UITextFieldViewModeAlways;
text.rightViewMode = UITextFieldViewModeAlways;

UITextFieldViewModeNever 从不出现
UITextFieldViewModeWhileEditing 编辑时出现
UITextFieldViewModeUnlessEditing 除了编辑外都出现
UITextFieldViewModeAlways 一直出现

  • 最右侧加图片:<左侧类似>
UIImageView *image = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@""]];
textfield.tightView = image;
  • 输入框中一开始就有的文字
textfield.text = @"";
  • 每输入一个字符就变成点 用于密码输入
textfield.secureTextEntry = YES;
  • autocorrectionType————是否纠错
textfield.autocorrectionType = UITextAutocorrectionTypeDefault;

UITextAutocorrectionTypeNo 不自动纠错
UITextAutocorrectionTypeYes 自动纠错

  • clearsOnBeginEditing————编辑清空
textfield.clearsOnBeginEditing = YES;
  • textAlignment————内容对齐方式
textfield.textAlignment = UITextAlignmentLeft;

UITextAlignmentRight 右对齐

UITextAlignmentCenter 中对齐

  • contentVerticalAlignment————内容垂直对齐方式
textfield.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;

UIControlContentVerticalAlignmentTop 对齐顶端

UIControlContentVerticalAlignmentBottom 对齐底部

UIControlContentVerticalAlignmentFill 充满

  • contentHorizontalAlignment————内容水平对齐方式
textfield.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;

UIControlContentHorizontalAlignmentLeft 对齐左边
UIControlContentHorizontalAlignmentCenter 对齐中间
UIControlContentHorizontalAlignmentRight 对齐右边
UIControlContentHorizontalAlignmentFill 充满

  • adjustsFontSizeToFitWidth————自动收缩字体适应文本窗口
textfield.adjustsFontSizeToFitWidth = YES;
textfield.minimumFontSize = 20; //最小缩小字体
  • autocapitalizationType————首字母是否大写
textfield.autocapitalizationType = UITextAutocapitalizationTypeNone; //不自动大写

UITextAutocapitalizationTypeWords 单词首字母大写
UITextAutocapitalizationTypeSentences 句子的首字母大写
UITextAutocapitalizationTypeAllCharacters 所有字母都大写

代理方法

  • 返回一个BOOl值,指定是否循序文本字段开始编辑,返回NO时不能唤起键盘进行编辑
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    return YES;
}
  • 开始编辑时触发,文本字段将成为first responder
-(void)textFieldDidBeginEditing:(UITextField *)textField{}
  • 返回BOOL值,指定是否允许文本字段结束编辑,当编辑结束,文本字段会让出first responder。要想在用户结束编辑时阻止文本字段消失,可以返回NO。这对一些文本字段必须始终保持活跃状态的程序很有用,比如即时消息。
-(BOOL)textFieldShouldEndEditing:(UITextField *)textField{
    return NO; //一直处于编辑阶段
}
  • 当用户自动更正功能,把输入的文字修改为推荐的文字时,就会调用这个方法。这对于加入撤销选项的应用程序特别有用。可以跟踪字段内所做的最后一次修改,也可以对所有编辑做日志记录,用作审计用途。要防止文字被改变可以返回NO。这个方法的参数中有个NSRange对象,指明了被改变文字的位置,建议修改的文字也在其中
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
    return YES;
}
  • 返回一个BOOL值指明是否允许根据用户请求清除内容。可以设置在特定条件下才允许清除内容
-(BOOL)textFieldShouldClear:(UITextField *)textField{
    return YES; //返回YES,输入内容后点击右边的清除按钮可以清除,返回NO,则不可以
}
  • 返回一个BOOL值,指明是否允许在按下回车键时结束编辑。如果允许要调用resignFirstResponder方法,这会导致结束编辑,而键盘会被收起
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
    return YES;
}

拓展

  • 限定特定字符输入
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
//可以在文件顶部定义:
//#define NUMBERD @"0123456789n"(这个代表可以输入数字和换行,这个n,如果不写,Done按键将不会触发)
NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:NUMBERD] invertedSet]; //inverted方法是去反字符,把所有的除了NUMBERS里的字符都找出来(包含去空格功能)
NSString *filtered = [string componentsSeparatedByString:NUMBERD]; //按cs分离出数组,数组按@""分离出字符串
//componentsJoinedByString用于根据一个字符串来将数组连接成一个新的字符串
BOOL canChange = [string isEqualToString:filtered];
return canChange; //这样写了后,输入非数字时不能输入
}
  • 限制只能输入一定长度的字符
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if ([string isEqualToString:@""]) /*按回车可以改变(这里写什么就只能输入什么)*/ {
return YES; //string就是此时输入的那个字符 textField就是此时正在输入的那个输入框 返回YES就是可以改变输入框的值 NO相反
NSString *toBeString = [textField.text stringByReplacingCharactersInRange:range withString:string]; //得到输入框的内容
if (self.myTextField == textField) /*判断是否是我们要限定的那个输入框*/{
    if ([toBeString length] > 20) {
        textField.text = [toBeString substringFromIndex:20]; //最多只能输入20个字符
            }
        }
    }
}

仅供参考,错误勿怪!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值