Я пытаюсь добавить -
после использования введите для символов в UITextField
. Ситуация заключается в добавлении номера кредитной/дебетовой карты. Я искал, но методы недействительны в соответствии с моими знаниями. Я установил предел 19
символов, 16 номеров карт и 3 -
в методе delegate
, как:
Как разместить символ между UITextField
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSUInteger length = [[textField text] length] - range.length + string.length;
return textField.text.length <=19;
}
Так что теперь length
дает мне точную длину, если UITextField
в то время. Что отлично работает, теперь мне нужно знать, что мне писать, если это поле достигает 3
, 7
или 11
. Добавить -
в поле. Все карточки, которые будут введены, находятся в этом формате xxxx-xxxx-xxxx-xxxx
, так что я пытаюсь добавить -
после 4 символов.
Я также попытался это внутри delegate
метода, но он не работает:
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setGroupingSeparator:@"-"];
[formatter setGroupingSize:4];
[formatter setUsesGroupingSeparator:YES];
NSString *num = textField.text ;
num= [num stringByReplacingOccurrencesOfString:@"" withString:@"-"];
NSString *str = [formatter stringFromNumber:[NSNumber numberWithDouble:[num doubleValue]]];
textField.text=str;
NSLog(@"%@",str);
return textField.text.length <=19;
Проверили это вы .. http://stackoverflow.com/questions/12083605/ formatting-a-uitextfield-for-credit-card-input-like-xxxx-xxxx-xxxx-xxxx –