在UITableViewCell中的UITextField之间导航

时间:2009-08-11 23:27:38

标签: iphone

在“联系人”应用的“添加/编辑”视图中,如果在某个字段中点击“返回”键,则会循环显示每个UITextField。这些字段似乎位于UITableViewCell内。有什么好办法呢?

当我有一系列不在表内的UITextField时,我可以调用 [self.view viewWithTag:tag]获取视图列表以及循环浏览它们的用法。但在一张桌子中,我只得到一个视图,我不知道如何将其转换过来。

 -(BOOL)textFieldShouldReturn:(UITextField *)textField {
    // Find the next entry field
    for (UIView *view in [self entryFields]) {
        if (view.tag == (textField.tag + 1)) {
            [view becomeFirstResponder];
            break;
        }
    }

    return NO;
}

/*
 Returns an array of all data entry fields in the view.
 Fields are ordered by tag, and only fields with tag > 0 are included.
 Returned fields are guaranteed to be a subclass of UIResponder.

 From: http://iphoneincubator.com/blog/tag/uitextfield
 */
- (NSArray *)entryFields {
    if (!entryFields) {
        self.entryFields = [[NSMutableArray alloc] init];
        NSInteger tag = 1;
        UIView *aView;
        while (aView = [self.view viewWithTag:tag]) {
            if (aView && [[aView class] isSubclassOfClass:[UIResponder class]]) {
                [entryFields addObject:aView];
            }
            tag++;
        }
    }
    return entryFields;
}

1 个答案:

答案 0 :(得分:0)

在我自己浏览时发现了这一点 - 抱歉延迟了。

如果您尚未解决问题,可以按屏幕上显示的相同顺序创建一个uitextfield对象数组。在创建表时,请设置文本字段的.tag属性。在文本字段委托方法中 - 读取标记,递增1(移动到下一个字段),并发出yesfirstresponder调用。

您还可以查看textFieldDidEndEditing委托方法。