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

OK、これが私が今持っているものです

- (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 に答える