Búsqueda de una vista de supervisión dentro de UITableViewCell iOS7

Tenía una class UItableViewCell personalizada llamada EditableTableViewCell que (además de otras cosas) tiene un UITextField dentro agregado a su contentView . En el método delegado de Textfield , estoy tratando de detectar a qué sección pertenece. Me gusta esto:

 -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ UIView* contentView =[textField superview]; //traverse up in the view hierarchy until we find the cell's content view. while (![contentView isKindOfClass:[EditableTableViewCell class]] || contentView.superview == nil) { contentView = [contentView superview]; } EditableTableViewCell *thiscell = (EditableTableViewCell*)contentView; NSIndexPath *indexpath =[[self tableView]indexPathForRowAtPoint:thiscell.center]; 

Esto me da el resultado correcto y vi una solución similar aquí que también navega por la jerarquía de la vista. Me pregunto si esta es la única solución o si hay algo más apropiado que no involucre el ciclo de todas las celdas disponibles.

Intente esto, sin necesidad de recorrer la vista

 -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ UIView* contentView =[textField superview]; CGPoint center = [self.tableView convertPoint:textField.center fromView:contentView]; NSIndexPath *indexpath =[[self tableView] indexPathForRowAtPoint:center]; NSLog(@"indexPath:%@", indexpath); } 

Por qué no

 NSIndexPath *indexpath = [(UITableView*)self.superview indexPathForCell:self] 

?