Я почти закончил реализацию 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]
не исправляет этого. Я что-то пропустил?