尝试从 UITableViewController 文本框将数据保存在核心数据中

Posted

技术标签:

【中文标题】尝试从 UITableViewController 文本框将数据保存在核心数据中【英文标题】:Trying to save data in Core Data from UITableViewController textbox 【发布时间】:2012-09-04 12:28:46 【问题描述】:

我有一个表格视图控制器,其中一行中有 5 个文本框,当我们单击添加按钮时,这些文本框添加了空值。

我正在尝试通过 Core Data 将数据保存在数据库中。

我的问题是,当我单击文本框并完成输入值并通过触摸屏尝试输入数据时,光标会转到另一个文本框,但在我输入文本之前不允许我输入文本按键盘上的 Return 键。

这是我对文本框的编码:

-(void)textFieldDidEndEditing:(UITextField *)textField



   row1=textField.tag;

    NSLog(@"Row is %d",row1);

    path = [NSIndexPath indexPathForRow:row1 inSection:0];

    Input_Details *inputDetailsObject1=[self.fetchedResultsController objectAtIndexPath:path];

    /*
     Update the Input Values from the values in the text fields.
     */

    EditingTableViewCell *cell;

    cell = (EditingTableViewCell *)[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:row1 inSection:0]];
    inputDetailsObject1.mh_Up= cell.cell_MH_up.text;
    inputDetailsObject1.mh_down=cell.cell_MH_dn.text;
    inputDetailsObject1.sewer_No=[NSNumber numberWithInt:[cell.cell_Sewer_No.text intValue]];
    inputDetailsObject1.mhup_gl=[NSNumber numberWithFloat:[cell.cell_gl_MHUP.text floatValue]];
    inputDetailsObject1.mhdn_gl=[NSNumber numberWithFloat:[cell.cell_gl_MHDN.text floatValue]];
    inputDetailsObject1.pop_Ln=[NSNumber numberWithInt:[cell.cell_Line_pop.text intValue]];
    inputDetailsObject1.sew_len=[NSNumber numberWithFloat:[cell.cell_Sewer_len.text floatValue]];
    [self saveContext];
    [textField resignFirstResponder];
    NSLog(@"Saving the MH_up value %@ is saved in save at index path %d",inputDetailsObject1.mh_Up,row1);






-(void)saveContext



NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];

 NSError *error = nil;

if (![context save:&error]) 



        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();
    



Here is a picture 的表格视图和文本框。

【问题讨论】:

【参考方案1】:

didEndEditing 表示您按下了返回键或将响应者移动到另一个对象。

如果您想通过其他机制移动到下一个文本框,那么您需要实现其他一些委托方法。例如,此方法textField:shouldChangeCharactersInRange:replacementString: 会在您每次更改文本字段中的字符时触发。例如,您可以使用它来根据输入更改响应者。

要让下一个文本框成为第一响应者,请致电 [mySecondField becomeFirstResponder]

希望这会有所帮助。

【讨论】:

您好,感谢您的回复...我可以通过触摸屏移动到另一个文本框,但无法输入值...有时我可以但有时我不能。 你能再详细点吗?究竟会发生什么?为什么你不能提供价值观? 我们将光标放在另一个文本框上,它使光标闪烁,然后不允许我在文本框中输入值..(我们可以说它只是挂断了)当我按下完成时btn 或键盘按下 btn 然后它允许我放置文本。但它并没有一直发生..有时我可以输入值..或者我可以说我同时将值放入 2 到 3 个文本框然后这个问题出现了...... 尝试从textFieldDidEndEditing: 中删除[textField resignFirstResponder]。这可能是冲突的。 嗨,如果我尝试将光标从一个文本框移动到另一个文本框,光标会闪烁一次,但并没有真正移动到该文本框,因为我无法在该文本中输入任何值盒子。请注意,随机光标会移动到某些文本框,您也可以将值输入该文本框,但并非一直如此。

以上是关于尝试从 UITableViewController 文本框将数据保存在核心数据中的主要内容,如果未能解决你的问题,请参考以下文章

从 UITableViewController 重新加载 tableView

从 firebase 获取数据到 UITableViewController - swift

如何从 UiTableViewController 访问自定义 UITableViewCell 的属性?

从 UITableViewController 中的按钮创建操作

从 URL 字符串中提取的 UITableViewController 中的图像加载缓慢

UITableViewController - 下拉表格视图以显示新的 UIView