2013-06-21 25 views
7

這應該很簡單,但它變得很頭疼。我有一個UITextField的視圖,用戶輸入一些文本並點擊搜索。這會彈出另一個視圖控制器,並且在第一個視圖消失之前,我會在文本字段上退出第一個響應者。當第二個視圖被解散時,第一個視圖會自動讓文本字段再次成爲第一個響應者,而我無法找到一種方法來抑制這一點。有沒有人有任何想法,當我解僱第二個視圖時,如何保持鍵盤彈出?當視圖變得可見時,UITextField成爲第一響應者,但我不想要它

我試圖resignFirstResponder in viewWillAppear,沒有效果。我在viewDidAppear中嘗試了同樣的方式,但彈出鍵盤然後立即解散了那看起來很尷尬的東西。

我很感激任何幫助。

+3

你能發表一些代碼嗎? – ggrana

+0

「在第一個視圖消失之前,我在文本字段中辭職第一響應者。」何時,確切地說,您是否告訴文本字段要辭退第一響應者?用什麼方法? –

+0

我在viewWillDisappear中辭職第一響應者,並且在第二個視圖變爲可見之前可以看到鍵盤消失,但是當我解散第二個視圖時,消失,然後鍵盤從屏幕底部向上動畫。 – SeanT

回答

5

我發現了一個修復程序,但它不是一個很好的修復程序。

發現canBecomeResponder消息正在傳遞到文本框viewWillAppear之後和viewDidAppear之前。

因此,我將viewDidAppear中的BOOL值設置爲YES,並在textField:shouldBeginEditing方法中使用該值。基本上如果viewDidAppear還沒有被調用,textField:shouldBeginEditing返回NO。

+0

我仍然不確定爲什麼這是一個問題,但您的解決方案基本上是我最終要解決的問題。我在'viewDidAppear'中設置了一個標誌,並在'viewDidDisappear'中取消設置,並用它來確定文本字段是否應該變爲活動狀態。 – SeanT

相關問題