通過爲方法編寫處理程序tableView:didEndDisplayingCell:forRowAtIndexPath:,我能夠檢測到從UITableView中刪除單元格的時間。每當從顯示中刪除單元格時,都會調用此方法。但是,有一個例外。如何檢測從iOS的uitableview中刪除單元格的邊界情況?
當電池具有的UITextField和場是第一響應者,甚至當它的卷離顯示器和它之前和之後立即將細胞這種方法不會被調用。
該單元格也被確認從UITableView中刪除,同時將單元格從屏幕滾動出來進行測試。在這種情況下,調用cellForRowAtIndexPath:返回nil。
我還對UITableViewCell進行了分類,併爲removeFromSuperView編寫了一個處理程序。當這個方法從屏幕上滾動出去時,除了當單元格有一個UITextField並且它是第一個響應者時,這個方法也會被調用。
另一個要注意的是,在單元格中的UITextField接受鍵盤輸入,同時它滾動到屏幕和呼叫的cellForRowAtIndexPath:返回nil。當單元格滾動回查看時,我可以看到這一點。
有沒有人有任何解決方案來檢測何時單元格滾動出視圖,以便控制器可以訪問到UITextField?
感謝您花時間回覆。我一直在努力,因爲我覺得應該有一個簡單的解決方案。您的回覆讓我再次想到了UIScollView類和代表。在查看方法時,我注意到了keyboardDismissMode屬性。其中一個值是UIScrollViewKeyboardDismissModeOnDrag。我回到UIBuilder,並設置表視圖的值以關閉拖動鍵盤。 Voila,這迫使UITextField無需任何代碼就辭職第一響應者。這是我需要的完美解決方案。完善!!! – Litehouse
太棒了。不知道那個。感謝分享。 –