通过为方法编写处理程序tableView:didEndDisplayingCell:forRowAtIndexPath:,我能够检测到从UITableView中删除单元格的时间。每当从显示中删除单元格时,都会调用此方法。但是,有一个例外。如何检测从iOS的uitableview中删除单元格的边界情况?
当电池具有的UITextField和场是第一响应者,甚至当它的卷离显示器和它之前和之后立即将细胞这种方法不会被调用。
该单元格也被确认从UITableView中删除,同时将单元格从屏幕滚动出来进行测试。在这种情况下,调用cellForRowAtIndexPath:返回nil。
我还对UITableViewCell进行了分类,并为removeFromSuperView编写了一个处理程序。当这个方法从屏幕上滚动出去时,除了当单元格有一个UITextField并且它是第一个响应者时,这个方法也会被调用。
另一个要注意的是,在单元格中的UITextField接受键盘输入,同时它滚动到屏幕和呼叫的cellForRowAtIndexPath:返回nil。当单元格滚动回查看时,我可以看到这一点。
有没有人有任何解决方案来检测何时单元格滚动出视图,以便控制器可以访问到UITextField?
感谢您花时间回复。我一直在努力,因为我觉得应该有一个简单的解决方案。您的回复让我再次想到了UIScollView类和代表。在查看方法时,我注意到了keyboardDismissMode属性。其中一个值是UIScrollViewKeyboardDismissModeOnDrag。我回到UIBuilder,并设置表视图的值以关闭拖动键盘。 Voila,这迫使UITextField无需任何代码就辞职第一响应者。这是我需要的完美解决方案。完善!!! – Litehouse
太棒了。不知道那个。感谢分享。 –