0

そのため、ユーザーが誕生日を入力すると、2桁の間にスラッシュを自動的に追加しようとしていますが、何らかの理由で誕生日が0で始まると、数値フォーマッターがそれを消去して誕生日を台無しにします。以下にコードを示します。誰かがこれを行う方法を理解するのを手伝ってくれますか? 前もって感謝します!

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init] ;

[formatter setGroupingSeparator:@"/"];
[formatter setGroupingSize:2];
[formatter setUsesGroupingSeparator:YES];
[formatter setSecondaryGroupingSize:2];
NSString *num = textField.text ;
if(![num isEqualToString:@""])
{
    num= [num stringByReplacingOccurrencesOfString:@"/" withString:@""];
   NSString *str = [formatter stringFromNumber:[NSNumber numberWithDouble:[num doubleValue]]];
    textField.text=str;
}
4

2 に答える 2

1

あなたができることは次のとおりです。

  • 文字列の長さを確認する
  • length mod 2 == 0 の場合は、「/」を追加します
  • 文字列をログに記録する

これが推奨されているとは言いませんが、少しは役立つかもしれません!

- (void)controlTextDidChange:(NSNotification *)obj{
    NSString *num = [textField stringValue] ;

    if (num.length%2==0)
    {
        NSString *someText = [NSString stringWithFormat: @"%@/ ", num];
        num = someText;
    }
    textField.stringValue = num;
}
于 2013-10-02T00:18:59.527 に答える