Я искал на этом сайте, что не смог найти решение проблемы, с которой я сейчас сталкиваюсь.Надеюсь, что кто-то может помочь.
Я создал UIAlertView, чтобы предложить пользователю ввести свое имя в приложении для iPhone.
UIAlertView *enterNameAlert = [[UIAlertView alloc] initWithTitle:@"Enter your name"
message:@"\n\n\n"
delegate:self
cancelButtonTitle:NSLocalizedString(@"Cancel", nil)
otherButtonTitles:NSLocalizedString(@"OK", nil),nil];
UITextField *enterNameField = [[UITextField alloc] initWithFrame:CGRectMake(16, 83, 252, 25)];
enterNameField.keyboardAppearance = UIKeyboardAppearanceAlert;
enterNameField.borderStyle = UITextBorderStyleRoundedRect;
enterNameField.autocorrectionType = UITextAutocorrectionTypeNo;
enterNameField.clearButtonMode = UITextFieldViewModeWhileEditing;
enterNameField.returnKeyType = UIReturnKeyDone;
enterNameField.delegate = self;
[enterNameField becomeFirstResponder];
[enterNameAlert addSubview:enterNameField];
[enterNameAlert show];
[enterNameAlert release];
[enterNameField release];
Я настроил этот viewController для соответствия UITextFieldDelegate взаголовочный файл и реализовано textFieldShouldReturn:
попытка отклонить клавиатуру, когда пользователь нажал кнопку «Готово».
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
if ([textField isFirstResponder]) {
[textField resignFirstResponder];
NSLog(@"text field was first responder");
} else {
[textField becomeFirstResponder];
[textField resignFirstResponder];
NSLog(@"text field was not first responder");
}
NSLog(@"textfieldshouldreturn");
return YES;
}
В отладчике я подтверждаю, что этот метод успешно вызывается, когда я нажимаю на кнопку «Готово» с textFieldбыть первым ответчиком в то время.Тем не менее, клавиатура не исчезает, а маленькая кнопка Clear исчезает.Ясно, что textField больше не является первым респондентом, потому что когда я снова нажимаю кнопку «Готово», ничего не вызывается.Я просто хочу отклонить клавиатуру кнопкой Готово.Может кто-нибудь предложить решение?Миллион благодарностей.