0

追加ボタンをクリックするとnull値が追加される行に5つのテキストボックスを持つテーブルビューコントローラーがあります。

Core Data を介してデータベースにデータを保存しようとしています。

私の問題は、テキストボックスをクリックして値の入力を終了し、タッチスクリーンを介してデータを入力しようとすると、カーソルが他のテキストボックスに移動しますが、Return キーを押すまでテキストを入力できないことです。キーボードのキー。

テキストボックスのコーディングは次のとおりです。

-(void)textFieldDidEndEditing:(UITextField *)textField

{

   row1=textField.tag;

    NSLog(@"Row is %d",row1);

    path = [NSIndexPath indexPathForRow:row1 inSection:0];

    Input_Details *inputDetailsObject1=[self.fetchedResultsController objectAtIndexPath:path];

    /*
     Update the Input Values from the values in the text fields.
     */

    EditingTableViewCell *cell;

    cell = (EditingTableViewCell *)[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:row1 inSection:0]];
    inputDetailsObject1.mh_Up= cell.cell_MH_up.text;
    inputDetailsObject1.mh_down=cell.cell_MH_dn.text;
    inputDetailsObject1.sewer_No=[NSNumber numberWithInt:[cell.cell_Sewer_No.text intValue]];
    inputDetailsObject1.mhup_gl=[NSNumber numberWithFloat:[cell.cell_gl_MHUP.text floatValue]];
    inputDetailsObject1.mhdn_gl=[NSNumber numberWithFloat:[cell.cell_gl_MHDN.text floatValue]];
    inputDetailsObject1.pop_Ln=[NSNumber numberWithInt:[cell.cell_Line_pop.text intValue]];
    inputDetailsObject1.sew_len=[NSNumber numberWithFloat:[cell.cell_Sewer_len.text floatValue]];
    [self saveContext];
    [textField resignFirstResponder];
    NSLog(@"Saving the MH_up value %@ is saved in save at index path %d",inputDetailsObject1.mh_Up,row1);




}

-(void)saveContext

{

NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];

 NSError *error = nil;

if (![context save:&error]) 

{

        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();
    }


}

テーブル ビューとテキスト ボックスの図を次に示します

4

1 に答える 1

0

didEndEditingリターンキーを押したか、レスポンダーを別のオブジェクトに移動したことを意味します。

他のメカニズムで次のテキスト ボックスに移動する場合は、他のデリゲート メソッドを実装する必要があります。たとえば、このメソッドtextField:shouldChangeCharactersInRange:replacementString:は、テキスト フィールド内の文字を変更するたびに起動します。たとえば、入力に基づいてレスポンダーを変更するために使用できます。

次のテキスト ボックスが最初のレスポンダーになるようにするには、 を呼び出します[mySecondField becomeFirstResponder]

お役に立てれば。

于 2012-09-04T16:17:37.053 に答える