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