私は他の例を見て試しました
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
何が間違っているのかわかりません。最初の iPhone アプリのコーディングを始めたばかりです。
これが私がやろうとしていることです
4つのテキストフィールドがあり、それぞれに入力中の文字数に制限があります。以下のコードを使用してこれを行いました
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
int valid;
NSString *cs2 = [textField.text stringByReplacingCharactersInRange:range withString:string];
// int charCount = [cs2 length];
if(textField == cvv){
valid = 4;
}else if(textField == cardName) {
valid=26;
}else if(textField == expDate) {
valid=5;
// if (charCount == 2 ) {
// textField.text = [cs2 stringByAppendingString:@"/"];
// textField.text = cs2;
// return YES;
// }
}else if(textField == acNumber) {
valid=19;
}
return !([cs2 length] > valid);
ここまでは問題なく動作します。ユーザーが有効期限を入力するテキストフィールドがあり、112 を入力しているかのようにフォーマットしたい場合は 01/12 と表示され、2 を入力すると 1122 と表示されます
テキストフィールド値の長さが2であるかどうかを確認してから/を追加してみましたが、12を入力すると11/22が得られます