限制输入到 UITextField 的字符数

Posted

技术标签:

【中文标题】限制输入到 UITextField 的字符数【英文标题】:Restricting number of charcters input to the UITextField 【发布时间】:2012-05-08 23:08:30 【问题描述】:

我有一个 UITextField,我在其中限制输入超过 2 位数字。现在,它工作正常,但是当我点击文本字段并选择所有内容然后键入它时,我无法覆盖现有的 2 位数字。

关于如何在此处使用“selectedTextRange”属性的任何线索?

- (BOOL)cell:(RunnerTableViewCell *)iCell shouldChangeCharactersInRange:(NSRange)iRange replacementString:(NSString *)iString 
    self.navigationItem.rightBarButtonItem.enabled = YES;
    NSCharacterSet *anUnacceptedInput = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];
    int aCharacterUpperLimit = 2;
    BOOL aReturnValue = YES;

    NSInteger aTotalLength = iCell.inputField.text.length + [iString length];
    NSLog(@"iString=%@ aTotalLength=%d",iString,aTotalLength);
    if ([[iString componentsSeparatedByCharactersInSet:anUnacceptedInput] count] > 1 || (aTotalLength > aCharacterUpperLimit && ![iString isEqualToString:kRunnerEmptyString]) || [iString length] > aCharacterUpperLimit) 
        aReturnValue = NO;
    
    return aReturnValue;

【问题讨论】:

【参考方案1】:

试试这个:

NSInteger aTotalLength = iCell.inputField.text.length + [iString length] - iRange.length;

【讨论】:

以上是关于限制输入到 UITextField 的字符数的主要内容,如果未能解决你的问题,请参考以下文章

UITextField最大字符数和最大字节数的限制

如何限制 UIAlertView UITextField 中的字符输入

UITextField:密码实现

限制两个特定文本字段中的字符数

如果在 UITextField 中输入了更多字符,则显示警报

无法将字符限制为 iOS 中 UITextField 内的字母数字 [重复]