UITextField для номера телефона

Не забудьте соответствовать случаю:

var isTrueSet = (myValue.toLowerCase() === 'true');

кроме того, если это - флажок элемента формы, можно также обнаружить, если флажок проверяется:

var isTrueSet = document.myForm.IS_TRUE.checked;

Предположение, что, если это проверяется, это "установлено" равное истинному. Это оценивает как истинное/ложное.

48
задан johnnyRose 10 February 2018 в 11:53
поделиться

3 ответа

Вы должны сделать это вручную. возьмите уведомление textField и проверьте длину текста поля и отформатируйте его в соответствии со страной. если возникнут проблемы, дайте мне знать. Я сделал это

0
ответ дан 7 November 2019 в 12:03
поделиться

К сожалению, придется делать это самостоятельно. Контактное приложение использует недокументированные API. По какой-то причине присоединение средств форматирования ввода к текстовым полям не отображается на iPhone, как на Mac. Не стесняйтесь отправлять отчет об ошибке улучшения функции.

1
ответ дан 7 November 2019 в 12:03
поделиться

Я бился над этим пару часов, вот что у меня есть:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
     {
    NSUInteger currentLength = textField.text.length;
    NSCharacterSet *numbers = [NSCharacterSet decimalDigitCharacterSet];        

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


    if ([numbers characterIsMember:[string characterAtIndex:0]]) {


        if ( currentLength == 3 ) 
        {

            if (range.length != 1) 
            {

                NSString *firstThreeDigits = [textField.text substringWithRange:NSMakeRange(0, 3)];

                NSString *updatedText;

                if ([string isEqualToString:@"-"]) 
                {
                    updatedText = [NSString stringWithFormat:@"%@",firstThreeDigits];
                }

                else 
                {
                    updatedText = [NSString stringWithFormat:@"%@-",firstThreeDigits];
                }

                [textField setText:updatedText];
            }           
        }

        else if ( currentLength > 3 && currentLength < 8 ) 
        {

            if ( range.length != 1 ) 
            {

                NSString *firstThree = [textField.text substringWithRange:NSMakeRange(0, 3)];
                NSString *dash = [textField.text substringWithRange:NSMakeRange(3, 1)];

                NSUInteger newLenght = range.location - 4;

                NSString *nextDigits = [textField.text substringWithRange:NSMakeRange(4, newLenght)];

                NSString *updatedText = [NSString stringWithFormat:@"%@%@%@",firstThree,dash,nextDigits];

                [textField setText:updatedText];

            }

        }

        else if ( currentLength == 8 ) 
        {

            if ( range.length != 1 ) 
            {
                NSString *areaCode = [textField.text substringWithRange:NSMakeRange(0, 3)];

                NSString *firstThree = [textField.text substringWithRange:NSMakeRange(4, 3)];

                NSString *nextDigit = [textField.text substringWithRange:NSMakeRange(7, 1)];

                [textField setText:[NSString stringWithFormat:@"(%@) %@-%@",areaCode,firstThree,nextDigit]];
            }

        }
    }

    else {
        return NO;
    }

    return YES;
}

Надеюсь, кто-нибудь сможет помочь.

10
ответ дан 7 November 2019 в 12:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: