2013-04-17 75 views
5

我有一個文本框,圖像和幾個按鈕的視圖。 我想,以確保顯示的鍵盤在頂部時,顯示 和 我想,以確保它不會消失後,我到文本字段中鍵入一些,並提交了看法。保持鍵盤始終位於頂部&可見

我叫[txtField becomeFirstResponder]與viewDidLoad中和鍵盤默認情況下,但有一個微小的延遲出現時顯示的視圖後。

另外,becomefirstresponder沒有幫助後,我有我的文本字段提交。

在此先感謝您的幫助!

回答

4

此外,在我提交了我的文本字段後,becomefirstresponder沒有幫助。

這部分是沒有意義的。默認情況下,文本字段並沒有消除,除非你endEditing:駁回resignFirstResponder它的鍵盤。如果鍵盤正在消失,您必須使它消失。所以不要,也不會。

編輯:的確,您的評論後顯露了答案:你已經迷上了從文本字段中didEndOnExit控制事件。那麼,當用戶按下完成按鈕時,會導致鍵盤被解散!所以你有效地擊中了自己的臉,然後抱怨有人在面對你。

所以解決辦法很明顯是不要掛鉤了didEndOnExit控制事件(對任何事情)。相反,只要給文本字段一個委託並使用委託消息來了解用戶正在做什麼。這些沒有任何關於鍵盤的自動行爲,所以鍵盤不會被自動解除。例如,要了解用戶何時輸入,請使用textField:shouldChangeCharactersInRange:replacementString:。要了解用戶何時點擊完成按鈕,請使用textFieldShouldReturn:。等等。

+0

確實,didEndOnExit鏈接到檢查用戶輸入文本的IBAction。但是,如果我沒有鏈接它didEndOnExit,我怎麼知道用戶何時完成鍵入並按下完成按鈕? 基本上我想實現這一點:作爲窗口被裝載在文本框 2.用戶填寫,按下完成按鈕或其他按鈕,我把旁邊的外地 3.我的代碼檢查 1.鍵盤是可見如果字符串是正確的並執行一些操作 4.同時焦點仍在文本字段中,並且鍵盤仍然可見 – user2292949

+0

是的,那麼不要這樣做。你自己正在做你正在抱怨的事情。所以,停止這樣做,問題就會消失。看到我編輯的答案。 – matt

+0

謝謝,這似乎是我正在尋找的答案。 一旦我完成了我想要做的事情,我就會更新我的代碼和我的條目。 關於打到自己的臉上;我現在可能會這樣做一段時間,因爲我只是開始IOS開發和OOP。 – user2292949