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