用户输入数据时格式化文本字段

时间:2010-06-16 20:39:57

标签: iphone uitextfield mask formatting

所以这就是我想要做的。我有一个出生日期文本字段,而用户在放置文本时我希望该字段自动将其放入YYYY-MM-DD格式。基本上,当用户键入它时,它会替换Y的M和D,但会留下连字符。我不知道该如何解决这个问题,我可能需要一个面具或其他东西。

我知道这是可以完成某些格式化的地方

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

任何帮助都会有很大帮助

2 个答案:

答案 0 :(得分:0)

你想要一个NSDateFormatter。另请参阅Data Formatting Programming Guide for Cocoa(在iPhone文档中)。

答案 1 :(得分:0)

好的,这就是我现在所拥有的

- (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;

}

唯一的问题是,当我尝试支持太空时,它不起作用我的猜测是因为它每次我按下退格键时都试图添加短划线。有人知道解决方法吗?