美文网首页
UITextField对输入的内容的长度限制和内容限制

UITextField对输入的内容的长度限制和内容限制

作者: sll_ | 来源:发表于2017-03-31 15:12 被阅读247次

    1.是通过添加事件的方式来限制:

    - (void)viewDidLoad {

    [superviewDidLoad];

    //创建文本框

    UITextField*textField = [[UITextFieldalloc]initWithFrame:CGRectMake(0,100, [UIScreenmainScreen].bounds.size.width,50)];

    //文本框的边框的样式

    textField.borderStyle= UITextBorderStyleRoundedRect;

    //为文本框添加事件(因为UITextField是继承于UIControl的)

    [textFieldaddTarget:selfaction:@selector(limit:)forControlEvents:UIControlEventEditingChanged];

    //添加到当前视图

    [self.viewaddSubview:textField];

    }

    //限制文本框的输入内容和文本的长度

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

    //限制文本的输入长度不得大于10个字符长度

    if(textField.text.length>=10){

    //截取文本字符长度为10的内容

    textField.text= [textField.textsubstringToIndex:10];

    }

    }

    2.通过UITextField的代理方法来进行限制的,并在此方法中进行输入内容的限制:

    #pragma mark - UITextFieldDelegate

    - (BOOL)textField:(UITextField*)textFieldshouldChangeCharactersInRange:(NSRange)rangereplacementString:(NSString*)string{

    //先设置只能输入的集合  invertedSet就是将咱们允许输入的字符串的字符找出

    NSCharacterSet*canInputSet = [[NSCharacterSetcharacterSetWithCharactersInString:textFieldContent]invertedSet];

    //把允许输入的内容转化成数组,再转化成字符串

    NSString*str = [[stringcomponentsSeparatedByCharactersInSet:canInputSet]componentsJoinedByString:@""];

    //判断输入的字符是否包含在允许输入的字符之内

    BOOLisSuccess = [stringisEqualToString:str];

    //限制文本框输入内容的长度不得超过10且有输入内容的限制

    if(textField.text.length<=10&& isSuccess){

    //返回值为YES的时候,文本框可以进行编辑

    returnYES;

    }else{

    //当返回NO的时候,文本框内的内容不会在再改变,甚至不能进行删除

    returnNO;

    }

    }

    相关文章

      网友评论

          本文标题:UITextField对输入的内容的长度限制和内容限制

          本文链接:https://www.haomeiwen.com/subject/wsrvottx.html