У меня есть ячейка tableView с UITextField
для ввода текста. Я наполнение Tableview со следующим кодом:Метод делегата для UITextField не называется
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"Ingredient Cell";
IngredientsTableViewCell *ingredientCell = [self.ingredientsTableView dequeueReusableCellWithIdentifier:cellIdentifier];
// NSManagedObjectContext *managedObject = [self.ingredientItems objectAtIndex:indexPath.row];
if (ingredientCell == nil)
{
ingredientCell = [[IngredientsTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
ingredientCell.accessoryType = UITableViewCellAccessoryNone;
[ingredientCell addSubview:ingredientCell.ingredientTextField];
[ingredientCell.ingredientTextField addTarget:self action:@selector(editingChanged:) forControlEvents:UIControlEventEditingChanged];
}
//Populate the textfield in the ingredientCell
ingredientCell.ingredientTextField.text = [self.ingredientItems objectAtIndex:indexPath.row];
return ingredientCell;
}
Ниже приводится @selector(editingChanged:)
метода TextField, который никогда не выполняет. Что я делаю не так?
-(void) editingChanged:(id)sender{
NSLog(@"hi");
// get the text being entered
NSString *ingredientText = ((UITextField *)sender).text;
//get the index of the selected row
NSInteger selectedIndex = [self.ingredientsTableView indexPathForSelectedRow].row;
//save the text to the array
[self.ingredientItems setObject:ingredientText atIndexedSubscript:selectedIndex];
}
BTW - 'editChanged:' не является методом 'UITextFieldDelegate'. – rmaddy
Похоже, слишком много копирует и копирует код. В этом методе создания ячейки есть что-то странное. Вы создаете «IngredientCell» и, возможно, повторно добавляете в него одно из своих подпрограмм? Вы также добавляете subview в ячейку вместо своего contentView. С этим кодом слишком много ошибок, чтобы определить, что происходит. Возможно, после внедрения IngredientCell (создается ли это с помощью прототипа ячейки в раскадровке?). Я предполагаю, что у вас есть 2 текстовых поля в этой ячейке, одна из них скрывает другую. – Rog