UITableViewCell с UITextField, теряющим возможность выбора UITableView row?

Я почти закончил реализацию UITableViewCell с UITextField в нем. Вместо того, чтобы использовать CGRectMake и UITableViewCell.contentView , я реализовал его более простым способом:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"Cell"];
    [cell setSelectionStyle:UITableViewCellSelectionStyleBlue];
    amountField = [[UITextField alloc] initWithFrame:CGRectMake(110, 10, 190, 30)];
    amountField.placeholder = @"Enter amount";
    amountField.keyboardType = UIKeyboardTypeDecimalPad;
    amountField.textAlignment = UITextAlignmentRight;
    amountField.clearButtonMode = UITextFieldViewModeNever; 
    [amountField setDelegate:self];

    [[cell textLabel] setText:@"Amount"];
    [cell addSubview:amountField];
    return cell;
}

А затем я также реализовал метод didSelectRow , отказавшись от textField. чтобы разрешить отображение входных представлений других полей.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    ...
    [amountField resignFirstResponder];
    ...
}

Это работает плавно, только в таблице есть другие строки, когда они выбраны, вся ячейка выбирается и становится синей, а ячейка с моим UITextField не , Я имею в виду, что поле выбрано, и я могу вводить текст, но ячейка не выбрана. Я проверил это и выяснил, что проблема в строке:

[cell addSubview:amountField];

Похоже, что это нарушает поведение выбираемой ячейки, и даже добавление ее в [cell contentView] не исправляет этого. Я что-то пропустил?

15
задан Vineet Singh 16 September 2013 в 10:02
поделиться