0

入力文字列を電話番号としてフォーマットする必要があります。

(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string  {
NSUInteger newLength = [textField.text length] + [string length] - range.length;
NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:NUMBERS_ONLY] invertedSet];
NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];

   if (string.length==3||string.length==7) {
    filtered =[filtered  stringByAppendingString:@"-"];
}
return (([string isEqualToString:filtered])&&(newLength <= CHARACTER_LIMIT));
}

ここ

  #define NUMBERS_ONLY @"1234567890-"
  #define CHARACTER_LIMIT 12

しかし、その編集は戻っていません。

アイデアをください

4

2 に答える 2

0

使用しているメソッドは、テキスト フィールドへの変更を許可するかどうかを決定する UITextFieldDelegate メソッドです。範囲と置換テキストを指定して、変更を行う必要があります (YES または NO)。

入力中に文字列をフォーマットしようとしています。このためには、textField.textプロパティの値も更新する必要があります。これは、後で「NO」を返しながら同じメソッドで実行できます。

于 2013-10-01T11:33:54.400 に答える