0

動的に割り当てられたいくつかのテックスフィールドがあり、そこにテキストを入力しています。

ここで2つの問題があります1)2〜3回のボタンクリックの後、ビューを変更して同じビューに戻ることを意味します。テキストフィールドからデータが削除されず、テキストフィールドの前のデータが存在します。私が試したコードは

    answerTextField.text = @"";
    answerTextField.text = nil;

2) textfield.text からのデータを追加しているテキスト フィールド データを削除できません。

      -(void) keyPressed: (NSNotification*) notification { 
if ([[[notification object]text] isEqualToString:@" "])
{
    UITextField *textField = (UITextField *)[self.view viewWithTag:nextTag];
    textField.text = @"";
    [textField becomeFirstResponder];
    nextTag = textField.tag;
}
else
{
    [[NSNotificationCenter defaultCenter] removeObserver: self name:UITextFieldTextDidChangeNotification object: nil];

    NSLog(@"TextField tag value :%d",tagCount);
    NSLog(@"TextField next tagg tag value :%d",nextTag);

    if (tagCount == nextTag+1) 
    {
        UITextField *textField = (UITextField *)[self.view viewWithTag:nextTag];
        [textField resignFirstResponder];
        NSLog(@"append string :%@",appendString);
    }
    else
    {
        NSLog(@"TextField nexttag value before :%d",nextTag);

        nextTag = nextTag + 1;
        NSLog(@"Letter is%@",[[notification object]text]);

        str= [[NSString alloc]initWithFormat:@"%@",[[notification object]text]];
        NSLog(@"TextField String :%@",str);

        NSLog(@"TextField nexttag value after :%d",nextTag);

        [appendString appendString:[NSString stringWithFormat:@"%@",str]];
        NSLog(@"Content in MutableString: %@",appendString);
    }

    NSLog(@"The tags in keypressed:%d",nextTag);
    UITextField *textField = (UITextField *)[self.view viewWithTag:nextTag];
    [textField becomeFirstResponder];
}
// For inserting Spaces taken from array.    
if(tagCount+300 == nextTag)
{
    for (int m=0  ; m< [intArray count]; m++) 
    {
        [appendString insertString:@" " atIndex:[[intArray objectAtIndex:m]intValue]];
        NSLog(@"FinalString : %@",appendString);
    }
}

}

編集:私が保存しているテキストフィールドのデータはゼロになっていますが、テキストフィールドではデータが残っていますが、削除されていません。テキストフィールドに背景画像を追加したため、違いがあるかどうかわかりません、私はそれのためのコードを添付しています:

    UIImageView *myView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"text_line.png"]];
                myView.center = CGPointMake(5, 27);                     
                [letterField insertSubview:myView atIndex:0];// mgViewTitleBackGround is image
                [myView release];
4

1 に答える 1

2

テキスト フィールドをクリアするには、viewWillAppear で次のコードを実行します。

  NSArray *arraysubViews = [self.view subViews];

  for(UIView *subView in arraysubViews){

      if([subView isKindOfClass:[UITextField class]]){
          // if(subView.tag == MY_TEXT_VIEW_TAG)
           (UITextField *)subView.text = @"";
       }
   }

これによりtext、ビュー内のすべての UITextField が削除されます。一部のテキストフィールドのみをクリアする必要がある場合は、コードのコメントを外してください。tag値に対してチェックします

編集

  NSArray *arraysubViews = [self.view subviews];

  for(UIView *subView in arraysubViews){

      if([subView isKindOfClass:[UITextField class]]){
          // if(subView.tag == MY_TEXT_VIEW_TAG)
          UITextField *textField = (UITextField *)subView;
          textField.text = @"";
       }
   }

UIView にはメソッドがありませんsubViews。そのsubViews代わりです。

于 2012-05-01T09:26:29.850 に答える