编辑完UITextField
并按下返回后,我循环并检查下一个字段。我得到该字段的索引路径,然后保存它。接下来,我重新加载表格数据,并且在建表时,如果indexPath
等于下一个文本字段的indexPath
,那么我将它设置为第一响应者。firstResponder没有设置
我抓住正确的textField
在正确的indexPath
和一切,但第一响应没有得到设置。相反,焦点就会消失。
我的代码:
//inside UITextFieldShouldReturn
for (int i = uiTextField.fieldTag + 1; i < group.fields.count; i++) {
ObjectEditField *field = [group.fields objectAtIndex:i];
if (field.propName && field.updateObjectOnEdit == YES && [field isKindOfClass:[ObjectEditTextField class]]) {
// set the active field
activeField = field;
// obtain a pointer to the textfield object and set it to be the first responder
ObjectEditTextField *textField = (ObjectEditTextField *)field;
if (![textField.field isFirstResponder]) {
UITableViewCell *cell = (UITableViewCell *)[[[uiTextField superview] superview] superview];
firstResponderIndexPath = [_fieldsTableView indexPathForCell:cell];
然后,一旦我已在firstResponderIndexPath
我打电话reloadData
在表视图,而且里面tableView:cellForRowAtIndexPath:
我:
if (firstResponderIndexPath.row + 1 == indexPath.row)
{
ObjectEditTextField *textField = (ObjectEditTextField *)field;
NSLog(@"display: %@", textField.field.text);
[textField.field becomeFirstResponder];
}
为NSLog
的输出是否正确,它应该是。然而,第一响应者没有正确设置。
请不要再次创建相同的问题。 – Sulthan 2013-04-26 19:38:58