tableView:indexPathForCell returns nil
It could be that the cell is not visible at this moment. tableView:indexPathForCell returns nil in this situation. I solved this using indexPathForRowAtPoint this method works even if the cell is not visible. The code: UITableViewCell *cell = textField.superview.superview; NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:cell.center];