2010-04-16 114 views
15

我有兩個文本字段的電子郵件和密碼。以下代碼在常規視圖中顯示字段時正常工作,但當它們位於彈出窗口中時,resignFirstResponder不起作用(成爲FirstResponder的工作方式)。兩個字段都調用了textFieldsShouldReturn。 任何想法,如果我失去了一些東西? 謝謝!iPad popover textfield - resignFirstResponder不會解僱鍵盤

- (BOOL)textFieldShouldReturn:(UITextField *)theTextField { 

    if (theTextField == email) { 
     [password becomeFirstResponder]; 
     return NO; 
    } 

    [theTextField resignFirstResponder]; 
    return NO; 
} 
+3

聽起來像一個錯誤。我建議在bugreport.apple.com上提交報告。 – 2010-05-10 21:10:06

+2

當textFields在modalPresentationStyle = UIModalPresentationFormSheet – 2010-07-06 20:39:08

+0

的模態視圖中時也有同樣的問題,我也遇到了這個bug。 – 2010-07-13 14:59:36

回答

1

我不太清楚這一點,但是,據我所知響應層次,辭職將只工作,如果你有一些其他的應答者回答。

在常規視圖中,視圖本身是願意的。在彈出窗口中,也許你需要對彈出的類進行一些操作(如重新實現一些響應方法)才能使其工作。

1

我也有這個問題。但是我通過製作另一個控件來解決這個問題,該控件不在firstResponder的popover中,後來又從那裏退出了。但我不知道popover有什麼問題。

2

this answer中所述,當視圖以UIModalPresentationFormSheet樣式呈現時,鍵盤有時仍保持在屏幕上。

17

檢查this問題:

重寫disablesAutomaticKeyboardDismissal爲下面返回NO固定礦井的同一個問題。你應該把這個代碼添加到您的視圖控制器,由您發起的鍵盤:

- (BOOL)disablesAutomaticKeyboardDismissal { 
    return NO; 
} 
+1

有一個特例。如果你的視圖控制器在UINavigaitonController中,你需要繼承UINavigationController並覆蓋那裏的方法。有關更多信息,請參閱http://stackoverflow.com/questions/3316700/dismiss-keyboard-on-ipad/14879832#14879832。 – Quentamia 2013-02-14 16:50:50

0

答案是作爲一個可能的解決方案,其他類似的問題提供的,而是在傳統治療不起作用。

總結 -

我有一個類似的問題(一定條件下),並嘗試了一切 - 無濟於事 - 包括在我的可能的解決方案列表是[OBJ的resignFirstResponder],disablesAutomaticKeyboardDismissal的」壓倒一切'爲我的視圖控制器,[self.view endEditing:YES];和一堆其他的東西。

關於確定當前第一響應者的[id],僅僅發現它是零。敲擊鍵盤上的「完成」或使用上述任何方法都不會做任何事情 - 鍵盤保持不變 - 即使在敲擊另一個輸入字段後也是如此。

屏幕本質上是一個ViewController,帶有一個UITableView,每個單元中有一個文本輸入字段 - 總共7或8個。敲擊任何單元格將按預期調出鍵盤,並單擊「下一步」按鈕(隱藏鍵盤和其他處理)按預期工作。 但是,在橫向模式下,鍵盤覆蓋了最後一個字段,要求滾動表格以顯示該字段。

滾動和點擊最後一個輸入字段後,鍵盤不能被解除 - 無論如何。唯一的解決方法是將表格滾回鍵盤下方,然後點擊「下一步」按鈕。這沒有意義。

幾乎在放棄(並實現解決方法)的時候,解決方案的工作是讓最後一個輸入字段成爲firstResponder(即使它已經有一個閃爍的光標),然後在resignFirstResponder之後。

所以;

` - (無效)actionNext {

[[m_arrInputFields objectAtIndex:7] becomeFirstResponder]; 
[[m_arrInputFields objectAtIndex:7] resignFirstResponder]; 

}`

固定的問題 - 而[m_arrInputFields objectAtIndex:#任何其他索引#] 沒有!

將是巨大的,如果任何人都可以提供清晰和對此的解釋 - 其他 - 我希望這樣可以節省別人工作了幾個小時!