UITextField在强制执行字符限制时追加/在日期之间

时间:2015-06-08 05:52:08

标签: ios objective-c uitextfield

我使用UITextField并需要强制执行以下日期格式:

12/17

enter image description here

我知道如何强制执行4个字符的限制:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

    if ([textField isEqual:self.billingExpirationDate]) {

        if (range.length + range.location > textField.text.length) {
            return NO;
        }

        NSUInteger newLength = [textField.text length] + [string length] - range.length;

        return newLength <= 4;

    }

    return YES;

}

但是,如果我在键入两个数字后尝试将/插入字符串中,它会搞砸,不会让用户使用删除按钮。

有没有人有任何想法我如何能够遵循所需的格式,同时只允许用户输入四个数字字符,显然让他们在需要时删除它们?

2 个答案:

答案 0 :(得分:1)

您可以将其用于删除字符。

if(string.length==0 && range.length==1)
   {
       return YES;
   }

如果您需要更多帮助,请与我们联系。感谢.....

答案 1 :(得分:0)

因此,我运行了您的代码并实施了一个扫描程序,以检查with...open是否为整数,如果string在输入而不是删除时达到位置+长度为2,则表示&#39; /&#39 ;在range之前加上

string