MFMailComposeViewController Клавиатура
Как отключить клавиатуру, не нажимая кнопку отправки или отмены в MFMailComposeViewController?!
Спасибо за любую помощь.
3 ответов
вы можете попробовать это.
UIWindow* keyWindow = [[UIApplication sharedApplication] keyWindow];
UIView* firstResponder = [keyWindow performSelector:@selector(firstResponder)];
[firstResponder resignFirstResponder];
надеюсь, что это помогает....
Я испытал аналогичную проблему: по какой-то причине iOS не отклоняет клавиатуру MFMailComposeViewController, когда приложение входит в фоновый режим (отклонение происходит, когда приложение снова становится активным). Однако iOS отклоняет клавиатуру, если первый ответчик является простым элементом (например, textview). Вызов resignFirstResponder не работал для меня в этом конкретном случае. Поскольку я переключаю окна на applicationBecomeActive (чтобы показать экран входа в систему), у меня несколько клавиатур друг над другом (одна сверху не работает). Я нашел простой обходной путь, чтобы отклонить клавиатуру MFMailComposeViewController, когда приложение уходит в отставку:
- (void)applicationWillResignActive:(UIApplication *)application
{
// Workaround: MFMailComposeViewController does not dismiss keyboard when application enters background
UITextView *dummyTextView = [[UITextView alloc] init];
[self.window.rootViewController.presentedViewController.view addSubview:dummyTextView];
[dummyTextView becomeFirstResponder];
[dummyTextView resignFirstResponder];
[dummyTextView removeFromSuperview];
// End of workaround
}
это неявно откажется от первого ответчика, если у нас есть какой-либо viewController, который в настоящее время представлен.
хотя вы, вероятно, можете сделать это, найдя какой-либо вид является первым ответчиком и вызывая resignFirstResponder
на нем (если вы не на iPad и MFMailComposeViewController использует UIModalPresentationFormSheet), Apple может отклонить ваше приложение для него. Quoth документация:
важно: сам интерфейс композиции почты не настраивается и не должен быть изменен вашим приложением.
Это может быть легко включать в себя поведение клавиатуры.