Uwaga:
Zobacz zaakceptowaną odpowiedź (nie wybraną najlepiej) dla rozwiązania z iOS 4.3.
To pytanie dotyczy zachowania wykrytego na klawiaturze iPada, gdzie odmawia odrzucenia, jeśli jest pokazane w modalnym oknie dialogowym z kontrolerem nawigacyjnym.
Zasadniczo, jeśli przedstawię kontrolerowi nawigacji następujący wiersz:
navigationController.modalPresentationStyle = UIModalPresentationFormSheet;
Klawiatura odmawia zwolnienia. Jeśli skomentuję ten wiersz, klawiatura zniknie.
...
Mam dwa pola tekstowe, nazwę użytkownika i hasło; nazwa użytkownika ma przycisk Dalej, a hasło ma przycisk Gotowe. Klawiatura nie zniknie, jeśli przedstawię to w modalnym kontrolerze nawigacyjnym.
PRACUJE
broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
[self.view addSubview:b.view];
NIE DZIAŁA
broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
UINavigationController *navigationController =
[[UINavigationController alloc]
initWithRootViewController:b];
navigationController.modalPresentationStyle = UIModalPresentationFormSheet;
navigationController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:navigationController animated:YES];
[navigationController release];
[b release];
Jeśli usunę część kontrolera nawigacji i sam przedstawię „b” jako kontroler widoku modalnego, to zadziała. Czy problem stanowi kontroler nawigacji?
PRACUJE
broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
b.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:b animated:YES];
[b release];
PRACUJE
broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
UINavigationController *navigationController =
[[UINavigationController alloc]
initWithRootViewController:b];
[self presentModalViewController:navigationController animated:YES];
[navigationController release];
[b release];
UINavigationController
klasy. Twoje zdrowie.
resignFirstResponder
to działa, ale klawiatura wciąż jest wyświetlana. Mój scenariusz (PresentFormSheet with navig contrllr) jest dokładnie taki sam jak twój. Wielkie dzięki !!