在“联系人”应用的“添加/编辑”视图中,如果在某个字段中点击“返回”键,则会循环显示每个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;
}
答案 0 :(得分:0)
在我自己浏览时发现了这一点 - 抱歉延迟了。
如果您尚未解决问题,可以按屏幕上显示的相同顺序创建一个uitextfield对象数组。在创建表时,请设置文本字段的.tag属性。在文本字段委托方法中 - 读取标记,递增1(移动到下一个字段),并发出yesfirstresponder调用。
您还可以查看textFieldDidEndEditing委托方法。