我有一个问题,当显示UITextField时,键盘正确显示,但在MFMailComposeViewController呈现和解除后无法显示。光标出现在文本框中,但没有键盘。在MFMailComposeViewController被解雇后,UITextField无法显示键盘
基本上,一个UIView被添加到包含的UITextField当用户轻敲一个“创建预设”按钮当前视图:
[self.view addSubview:createPresetView];
[presetNameField becomeFirstResponder];
该工程。用户可以添加多个新的预设,每次添加视图时,文本字段将成为第一响应者,并出现键盘。为了排除presetNameField不在视图层次结构中的问题,我也尝试了在延迟1秒后成为FirstFoundResponder - 结果相同。
接下来,预设可以通过电子邮件共享,使用标准MFMailComposeViewController:
MFMailComposeViewController *mailView = [[MFMailComposeViewController alloc] init];
[mailView setMailComposeDelegate:appController];
[mailView setSubject:@"New preset"];
[mailView setMessageBody:@"\n\nMail from app" isHTML:NO];
[appController presentModalViewController:mailView animated:YES];
邮件撰写看法正确驳回只要我可以告诉:
[controller.view endEditing:YES]; // I added this as a test to ensure the mail view resigns first responder, no difference.
[self dismissModalViewControllerAnimated:YES];
[controller release];
controller = nil;
但现在创建预设按钮添加视图和文本字段,将文本字段设置为第一响应者,但不会出现任何键盘。
我已经检查出发生了什么,当我做文本字段成为FirstFoundResponder。文本字段本身是有效的,并返回YES到canBecomeFirstResponder。
我发现的唯一潜在线索是[presetNameField becomeFirstResponder] 总是返回NO(即使在显示邮件视图之前)。
有什么建议吗?
你找到一个解决办法? – 2015-02-26 10:04:04