0

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

我知道这是可以进行一些格式化的地方

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

任何帮助都会有很大帮助

4

2 回答 2

0

你想要一个NSDateFormatter。另请参阅Cocoa 的数据格式化编程指南(在 iPhone 文档中)。

于 2010-06-16T20:41:01.403 回答
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;

}

唯一的问题是,当我尝试退格时,它不起作用我的猜测是因为每次我按下退格键时它都会尝试添加破折号。有人知道解决方法吗?

于 2010-06-17T12:42:44.797 回答