1

我有一个充满子类文本字段的 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”,我不知道该怎么做。请帮忙!

4

2 回答 2

0

cellForRowAtIndexPath中,将名称设置为"myTextfield-<row>". 然后你可以解析它并知道 prev/next 字段是什么。您已经设置myTextfield.tag为,indexPath.row因此您甚至不必解析名称。您知道上一个和下一个字段分别是"myTextfield-<tag-1>""myTextfield-<tag+1>"

于 2012-09-14T01:19:59.513 回答
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;
}
于 2012-09-15T08:39:35.280 回答