我有一个动态表格视图,它有5个原型单元格,每个单元格里面有6个文本字段。我正在标记文本字段,但我无法理解如何从“textFieldDidEndEditing
”中获取所有这些值。
在我的代码中我有这个:
-(void) textFieldDidEndEditing:(UITextField *)textField
{
NSMutableArray *cellOneContentSave = [[NSMutableArray alloc] init];
NSString *cellOneTexfieldOneTxt;
if (textField == [self.view viewWithTag:1503])
{
cellOneTexfield1Txt = textField.text;
[cellOneContentSave addObject:cellOneTexfieldOneTxt];
}
问题1:但是!这只能得到一个单元格中一个texfield的值...我应该为每个单元格和texfield使用一个开关吗?。
问题2:我说这是一个动态的tableview,所以当用户输入提交编辑样式时,用户可以按下左侧出现的绿色+按钮插入新闻行(每个部分) ......当他进入时,newtexfields的标签是否应该有不同的标签?一方面我认为不是,因为它是新的texfields但不同的indepax.row ....但另一方面我不知道控制器是否需要新的标签......
答案 0 :(得分:2)
-(void) textFieldDidEndEditing:(UITextField *)textField
{
// assuming your text field is embedded directly into the table view
// cell and not into any other subview of the table cell
UITableViewCell * parentView = (UITableViewCell *)[textField superview];
if(parentView)
{
NSMutableArray *cellOneContentSave = [[NSMutableArray alloc] init];
NSString *cellOneTexfieldOneTxt;
NSArray * allSubviews = [parentView subviews];
for(UIView * oneSubview in allSubviews)
{
// get only the text fields
if([oneSubview isKindOfClass: [UITextField class]])
{
UITextField * oneTextField = (UITextField *) oneSubview;
if(oneTextField.text)
{
[cellOneContentSave addObject: oneTextField.text];
} else {
// if nothing is in the text field, should
// we simply add the empty string to the array?
[cellOneContentSave addObject: @""];
}
}
}
}
// don't forget to actually *DO* something with your mutable array
// (and release it, in case you're not using ARC), before this method
// returns.
}