我有一个充满子类textFields的tableView。以下是我创建它们的方式:
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *cellIdentifier = kOddCellIdentifier;
CustomCell01 *oddCell = (CustomCell01 *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
oddCell.myTextfield.delegate=self;
oddCell.myTextfield.tag = indexPath.row;
oddCell.myTextfield.text=[[self.Page01dataArray objectAtIndex:indexPath.row]objectForKey:@"value"];
bool editable = [[[self.Page01dataArray objectAtIndex:indexPath.row] objectForKey:@"editable"] boolValue];
if (editable==true) {
oddCell.myTextfield.textColor=[UIColor redColor];
} else {
oddCell.myTextfield.textColor=[UIColor blackColor];
[oddCell.myTextfield setBorderStyle:UITextBorderStyleNone];
oddCell.myTextfield.enabled=NO;
}
[oddCell.myTextfield addTarget:self action:@selector(updateField:) forControlEvents:UIControlEventEditingDidEnd];
return oddCell;
}
当用户点击“下一步”按钮时,我不知道如何移动到下一个文本字段。通常我应该将下一个文本字段作为第一个响应者,但是因为我的所有文本字段都具有相同的名称“myTextfield”,所以我不知道该怎么做。请帮忙!
答案 0 :(得分:0)
在cellForRowAtIndexPath
中,将名称设置为"myTextfield-<row>"
。然后你可以解析它并知道prev / next字段是什么。您已将myTextfield.tag
设置为indexPath.row
,因此您甚至无需解析名称。您知道上一个和下一个字段分别是"myTextfield-<tag-1>"
和"myTextfield-<tag+1>"
。
答案 1 :(得分:0)
我终于通过在cellForRowAtIndexPath
中创建数组找到了解决方案[nextTFarray addObject:oddCell.myTextfield];
然后:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
int i=[nextTFarray count];
int x=textField.tag+1;
UITextField *nextTextField = (UITextField *)[nextTFarray objectAtIndex:x];
if (x<i-1) {
[nextTextField becomeFirstResponder];
} else {
[textField resignFirstResponder];
}
return YES;
}