iPhone - didSelectRowAtIndexPath: solo se llama después de una pulsación larga en una celda personalizada

Estoy creando una aplicación basada en vista de tabla. He creado una celda de tabla personalizada para la tabla, que contiene 2 etiquetas, 1 imagen y 1 botón. El método de fuente de datos de la vista de tabla funciona correctamente. Estoy usando xib tanto para la celda personalizada como para la clase de controlador de vista y conecto el delegado y la fuente de datos al propietario del archivo. Pero el problema es que cuando selecciono la fila de la tabla, didSelectRowAtIndexPath no se está activando. Como se mencionó, la única forma de disparar es mantener presionada la celda durante unos 3-4 segundos. ¿Alguien tiene alguna idea de por qué esto está sucediendo?

Gracias por cualquier punteros ...

Aquí están mis métodos de vista de tabla ...

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [finalAddonsArray count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    NewCustomCell *cell = (NewCustomCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        NSArray *nib=[[NSBundle mainBundle]loadNibNamed:@"NewCustomCell" owner:self options:nil];
        cell=[nib objectAtIndex:0];
    }

    Addons *addons1=[[Addons alloc]init];
    addons1= [finalAddonsArray objectAtIndex:indexPath.row];

    if (addons1.data == nil) {
        cell.ivCategory.image = [UIImage imageNamed:@"blogo.jpg"];
    }
    else
    {
        cell.ivCategory.image=[UIImage imageWithData:addons1.data];
    }

    cell.lblTitle.text = addons1.name;
    if (addons1.price == nil) {
        cell.lblPrice.text = nil;
    }
    else{
        cell.lblPrice.text = [NSString stringWithFormat:@"%@ rs",addons1.price];
    }
    [cell.button addTarget:self
                    action:@selector(editButtonPressed:)
          forControlEvents:UIControlEventTouchUpInside];

    cell.button.tag=indexPath.row;
    index = indexPath;
    cell.selectionStyle = UITableViewCellSelectionStyleGray;

    return cell;
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"sjcjksbcjksbcfkebscf1234567890");
}

Una cosa más que estoy obteniendo es que si estoy utilizando UITableViewCell por defecto en lugar de una celda personalizada, entonces mi problema es el mismo, el método de delegado no se está disparando.

Propiedades de celda personalizadas:

Respuestas a la pregunta(7)

Su respuesta a la pregunta