TextField:shouldChangeCharactersInRange:replacementString:返回陷阱! [英] TextField:shouldChangeCharactersInRange:replacementString: return trap!

查看:46
本文介绍了TextField:shouldChangeCharactersInRange:replacementString:返回陷阱!的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在调用UITableViewCell委托方法TextField:shouldChangeCharactersInRange:replacementString:在具有四个UITextField的自定义单元格上,一旦在其中一个字段上达到maxlength时会发生什么,则它不允许您在其他字段中输入任何文本,因为它总是对于满足条件的初始if语句,返回"no".关于如何解决这个问题的任何想法?

Im calling UITableViewCell delegate method TextField:shouldChangeCharactersInRange:replacementString: on a custom cell that has four UITextFields and what is happening once maxlength is reached on one of the fields it dose not let you enter any text in the other fields because its always returning "no" for that initial if statement thats being satisfied. any ideas on how to get around this?

目前,我仅在两个领域进行测试.谢谢您的提前帮助.

I'm only testing on two fields at the moment. Thank you for any help in advance.

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    int regFieldOnelength = [regFieldOne.text length] ;
    int regFieldTwolength = [regFieldTwo.text length] ;


    if ((regFieldOnelength >= MAXLENGTH && ![string isEqualToString:@""]) || (regFieldTwolength >= MAXLENGTH && ![string isEqualToString:@""])) {
        if(regFieldOne.text = [regFieldOne.text substringToIndex:MAXLENGTH]){
            return NO;
        }
        if(regFieldTwo.text = [regFieldTwo.text substringToIndex:MAXLENGTH]){
            return NO;
        }
    }


    return YES;
}

推荐答案

为什么要在展位中使用文本字段,而要使用当前正在编辑的文本字段

Why are you using booth the text field, Instead use the current text field that is being edited

    -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
    {
        int currentTxtLen = [textField.text length] ;
        if (currentTxtLen >= MAXLENGTH && ![string isEqualToString:@""]) {
            return NO;
        }
        return YES;
}

这篇关于TextField:shouldChangeCharactersInRange:replacementString:返回陷阱!的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆