Sunt practic încercarea de a adăuga un UITextField la un UITableViewCell asupra tableView: commitEditingStyle: forRowAtIndexPath :. Pe Inserare, vreau să adăugați un UITextField peste celula existentă.
Am setup textfield cu ceva de genul:
-(void) setUpIndexField {
inputField = [[UITextField alloc] init];
inputField.textAlignment = UITextAlignmentCenter;
inputField.borderStyle = UITextBorderStyleRoundedRect;
inputField.keyboardType = UIKeyboardTypeNamePhonePad;
inputField.delegate = self;
}
Apoi, în commitEditingStyle, am ceva, cum ar fi:
- (void)tableView:(UITableView *)tv
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
forRowAtIndexPath:(NSIndexPath *)indexPath
{
NSInteger row = [indexPath row];
if (editingStyle == UITableViewCellEditingStyleInsert) {
if (row == 0) {
UITableViewCell *cell = [tv cellForRowAtIndexPath:indexPath];
inputField.frame = [tv cellForRowAtIndexPath:indexPath].frame;
[cell.contentView addSubview:inputField];
[inputField becomeFirstResponder];
return;
}
// more code etc.
}
Când fac clic pe accessor Insert (+), câmpul text se ajunge într-adevăr, se trânti pe ecran, dar nu în cazul în care în apropierea celulei, care-l clic. Se stinge într-o parte aleatorie a UIView, nu celula real pentru indexPath în cazul în care a fost făcut clic pe +.
Insight pe unde am mers greșit și cum pot plasa UITextField pe celula în care a făcut clic pe + ar fi ideal.













