0

グループ化されたテーブル ビューがあり、ユーザーが Enter キーを押したときに新しいファーストレスポンダをテキスト フィールドに設定しようとしています。

これは私にとって新しいことではなく、関係のない変更を加える前はコードが機能していましたが、現在は機能していません。ファーストレスポンダを設定すると、正しいテキスト フィールドへのポインタが表示されますが、何も起こりません。

フォーカスはテキスト フィールドから完全に離れ、キーボードは画面上にとどまります。その後、ユーザーが再びテキスト フィールドにフォーカスを移すまで、Enter キーと「キーボードを隠す」キーの両方が機能しなくなります。

コードは次のとおりです。

- (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;
            }
        }
    }
4

2 に答える 2