Форматировать текстовое поле при вводе данных пользователем - PullRequest
0 голосов
/ 17 июня 2010

так вот что я пытаюсь сделать.У меня есть текстовое поле даты рождения, в то время как пользователь вводит текст, я хочу, чтобы поле автоматически помещало его в форму ГГГГ-ММ-ДД.В основном, когда пользователь печатает, он заменяет буквы M и D, но оставляет дефис.Я не уверен, как это сделать, мне может понадобиться маска или что-то в этом роде.

Я знаю, что здесь можно выполнить некоторое форматирование

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

Любая помощь будет очень полезна

Ответы [ 2 ]

0 голосов
/ 17 июня 2010

ОК, вот что у меня сейчас

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    //Format Date of Birth YYYY-MM-DD
    if(textField == txtDOB)
    {
        if ((txtDOB.text.length == 4)||(txtDOB.text.length == 7))
            //Handle backspace being pressed
            if (![string isEqualToString:@""])
            txtDOB.text = [txtDOB.text stringByAppendingString:@"-"];
        return !([textField.text length]>9 && [string length] > range.length);
    }
    else
        return YES;

}

Единственная проблема в том, что когда я пытаюсь вернуться назад, это не работает, я думаю, потому что он пытается добавить тире каждый раз, когда я нажимаю клавишу возврата. Кто-нибудь знает работу вокруг?

0 голосов
/ 17 июня 2010
...