Добавление сюда моих окончательных результатов!
Решение от Valexa.Это работало абсолютно нормально, но мне нужно было обрабатывать различные виды ввода вручную.
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
scrollView.contentSize = CGSizeMake(320, 750);
[scrollView setFrame:CGRectMake(0, 0, 320, 480)];
return YES;
}
- (void)textFieldDidBeginEditing:(UITextField *)textField {
previousTextField = textField;
scrollView.contentSize = CGSizeMake(320, 650);
[scrollView setFrame:CGRectMake(0, 0, 320, 260)];
}
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
if (textField == CountryTextField || textField == BirthdayTextField) {
[previousTextField resignFirstResponder];
return NO;
}
return YES;
}
Удивительное решение (спасибо Caleb): нет необходимости отслеживать дополнительные переменные для предыдущего текстового поля и не нужно иметь головную боль при показе и добавлении.просмотров
BirthdayTextField.inputView = DatePickerView;
CountryTextField.inputView = CountryPickerView;
SexTextField.inputView = SexPickerView;
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
scrollView.contentSize = CGSizeMake(320, 750);
[scrollView setFrame:CGRectMake(0, 0, 320, 480)];
return YES;
}
- (void)textFieldDidBeginEditing:(UITextField *)textField {
scrollView.contentSize = CGSizeMake(320, 650);
[scrollView setFrame:CGRectMake(0, 0, 320, 260)];
}