I need to get the NSIndexPath for a custom cell in a UITableView. Here’s the problem: I send a NSNotification from my custom cell to my UITableViewController when editingDidBegin gets called from a UITextField in my custom cell. In my UITableViewController, I resize the UITableView when the UITextField began editing, and then want the table view to scroll to the Cell in which the UITextField is first responder. But I can’t figure out how to return the indexPath of the cell where the UITextField is being edited. I have tried so many ways, but its still not working. One way is this: in my cstomCell class i select the row using [self setSelected:YES] and in my TV controller then if I NSLog the row of [self.tableV indexPathForSelectedRow] it always returns 0 even though its always not 0.
I need to get the NSIndexPath for a custom cell in a UITableView .
Share
Just give the cell a value for its
tagproperty. Then you can get that cell by calling thisthen once you have the cell you can get the NSIndexPath like this
Since you have a UITextField in your custom cell you can place
cell.textField.delegate = self;in the- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPathdata source method. That way you will not have to setup a NSNotification in the Custom Cell. Also in this same method you can tag both your cells text field like this
cell.textField.tag = indexPath.row;and the cell like thiscell.tag = indexPath.row;Now that you have set the UITextField delegate, you can now place this method in your UITableViewController class
The above UITextField delegate method should get you the indexPath for the cell you have currently selected.