尝试从 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 中的按钮创建操作