2012-02-07 30 views
1

我在我的MainViewController.m文件中有一個帶Textfields的應用程序。該文件中還有一個滾動視圖,所以當鍵盤出現時,視圖會滾動以便用戶看到文本字段。當用戶點擊屏幕時,鍵盤被解除。一切都運行良好,除非用戶點擊主頁按鈕將應用程序置於後臺然後再回到它。在這種情況下,鍵盤仍然彈起,但我的滾動視圖已關閉,文本框隱藏起來。理想情況下,我想讓鍵盤也被解僱。從AppDelegate.m中的applicationDidEnterBackground中刪除鍵盤

查看完畢後,調用的方法都在AppDelegate.m文件中(不幸的是,它不會進入ViewDidLoad或任何View生命週期方法)。如何從AppDelegate.m文件中的applicationDidEnterBackground中關閉鍵盤? 我是一個新手 - 我試圖在我的MainViewController文件中做一個+ dismisskeyboard函數,並從Appdelegate調用它,但是我的文本字段都是實例變量,並且不起作用。我也嘗試在我的AppDelegate文件中創建一個文本框,然後執行此操作 -

[_someField becomeFirstResponder];

[_someField resignFirstResponder];

但是這也沒有工作...我無法弄清楚如何在我的故事板鏈接什麼someField的AppDelegate的財產。

任何人都可以提出正確的方法來解決這個問題嗎?

回答

3

只需在您的MainViewController類中註冊一個UIApplicationDidEnterBackgroundNotification的方法,然後關閉鍵盤。例如
註冊通知

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receivedNotification:) name:UIApplicationDidEnterBackgroundNotification object:nil]; 


再加入此方法

- (void) receivedNotification:(NSNotification *) notification 
{ 
    [txtFld resignFirstResponder]; 
} 
+0

謝謝!多簡單的解決方案!我仍在學習通知,但管理這一個,它完美的作品。 – 2012-02-07 15:06:57

+0

這是一件好事...... :) – 2012-02-07 15:11:25