У меня есть uitextfield с форматом: DD/MM/YYYY, например: 12/03/1982 Я хочу, чтобы пользователь вводил «2» и «3», это поле будет вставляться '/' после них автоматически. Я выполнил это в методе:Автоматически вставить поле «/» в поле даты
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
с проверкой:
NSString *wholeTextName =
[textField.text stringByReplacingCharactersInRange:range
withString:string];
LogDebug(@"WholeText: %@", wholeTextName);
if ([textField isEqual:self.dateOfBirthTextField])
{
if (([wholeTextName length] == 2)||(([wholeTextName length] == 5))) {
textField.text=[wholeTextName stringByAppendingString:@"/"];
}
но когда я печатаю на '2', результат на этом текстовом поле является: '12/2' не '12/'= ожидаемый результат Не могли бы вы предложить мне, пожалуйста?
Лучшим вариантом было бы изменить вид ввода текстового поля в подборщик даты. – Fogmeister
спасибо @Fogmeister, но в моем случае требуется использовать UITextfield –
Нет, вы неправильно поняли. Используйте UITextField с входным представлением UIDatePicker. Затем он будет использовать datePicker для заполнения UITextField вместо клавиатуры. Это также означает, что вы получаете бесплатную проверку даты. Например, что произойдет, если пользователь наберет «29/02/2015»? Или что произойдет, если они напечатают «03/02/2015»? Это 3 февраля? Или это 2 марта? – Fogmeister