我有一個問題,當顯示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