我有一個分組表格視圖,並試圖設置一個新的第一響應者到一個文本字段,當用戶點擊輸入。急救員沒有正確設置
這對我來說並不新鮮,我的代碼在我做了一些不相關的更改之前就工作了,而現在它沒有。當我設置第一個響應者時,我有一個指向正確文本字段的指針,沒有任何反應。
焦點完全從任何文本字段中消失,並且鍵盤保持在屏幕上。然後,輸入和「隱藏鍵盤」鍵都會停止,直到用戶再次重新啓動文本字段的焦點。
下面是代碼:
- (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