我有一个分组的表格视图,并尝试在用户按 Enter 时将新的第一响应者设置为文本字段。
这对我来说并不是什么新鲜事,我的代码在我进行一些不相关的更改之前有效,而现在却没有。当我设置它的第一响应者时,我有一个指向正确文本字段的指针,没有任何反应。
焦点完全从任何文本字段中消失,键盘留在屏幕上。然后 enter 和 'hide keyboard' 键都停止工作,直到用户再次重新启动对文本字段的关注。
这是代码:
- (void)uiTextFieldShouldReturn:(ObjectEditTextField *)uiTextField
{
if ((group.fields.count - 1) > uiTextField.fieldTag)
{
//loop through every table group
for (int i = uiTextField.fieldTag + 1; i < group.fields.count; i++) {
//get whatever field is in the row (not necessarily a text field)
ObjectEditField *field = [group.fields objectAtIndex:i];
// a check if the field is of type UITextField
if (field.propName && field.updateObjectOnEdit == YES && [field isKindOfClass:[UITextField class]]) {
// set the active field
activeField = field;
// adjust the table view offset to make sure the text field is visble
[self setTableViewOffsetForTextField:field];
// obtain a pointer to the textfield object and set it to be the first responder
UITextField *textField = (UITextField *)field;
NSLog(@"field %@", textField.fieldLabel);
if (![textField.field isFirstResponder]) {
[textField.field becomeFirstResponder];
return;
}
break;
}
}
}