我有一个分组表格视图,并试图设置一个新的第一响应者到一个文本字段,当用户点击输入。急救员没有正确设置
这对我来说并不新鲜,我的代码在我做了一些不相关的更改之前就工作了,而现在它没有。当我设置第一个响应者时,我有一个指向正确文本字段的指针,没有任何反应。
焦点完全从任何文本字段中消失,并且键盘保持在屏幕上。然后,输入和“隐藏键盘”键都会停止,直到用户再次重新启动文本字段的焦点。
下面是代码:
- (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;
}
}
}
重点是什么?如果“没有任何反应”,你怎么能摆脱“焦点”?你有没有“无关的变化”以前的版本检查相同的设备/模拟器? –
我的猜测是这个问题根本与这个代码无关。检查你的文本字段('ObjectEditField')代码中发生了什么。当'becomeFirstResponder'被调用时,它可能正在做些什么?也许它阻止了主线程?也许其他事情发生在其他领域成为第一响应者? – Sulthan
它是否在模态视图控制器? – Sulthan