-1

このリンクの回答を見た後、テキストフィールドを作成しました

配列内に作成されたすべてのテキストフィールドにユーザーがテキストを入力したかどうかを確認するにはどうすればよいですか? テキスト フィールドのいずれかが空白の場合、false を返す必要があります。それ以外の場合は true を返します。

編集:このリンクも参照してください。テキストフィールドを配列で取得します。回答コードの末尾にある nslog で回答を参照してください。

 - (IBAction)save:(id)sender {

    mutableTextArray = [[NSMutableArray alloc] init];
    for(field in self.scroll.subviews)
    {
        if([field isKindOfClass:[UITextField class]])
        {
            if([[field text] length] > 0)
            {
                [mutableTextArray addObject:field.text];
            }

        }
    }

    NSLog(@"Save button 2 : %@", mutableTextArray);

    [self fetchStrings:mutableTextArray];

}

- (BOOL) isAllTextFieldsValid {
    for (UITextField *fields in mutableTextArray) {
        // Trim any spaces entered by user.
        NSString *txt = [fields.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
        if([txt length]==0) {
            //If any of the contained txt fields will have
            //blank text this will return NO.
            return NO;
        }
    }
    //Else if all txt fields have some text entered it them, return YES
    return YES;
}

- (void) fetchStrings:(NSMutableArray *)textArray
{

    NSLog(@"Array string = %@", textArray);
    if(![self isAllTextFieldsValid])
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Cannot proceed" message:@"Please answer all questions" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
        [alert show];
    }
    else
    {
4

3 に答える 3

0

配列を容量で初期化し、それをグローバル整数「i」と比較しました。「i」には、動的に作成されたテキストフィールドの数があります。言及しないとうまくいきませんinitWithCapacity:0。クレイジー。

mutableTextArray = [[NSMutableArray alloc] initWithCapacity:0];
    for(field in self.scroll.subviews)
    {
        if([field isKindOfClass:[UITextField class]])
        {
            if([[field text] length] > 0)
            {
                [mutableTextArray addObject:field.text];
            }

        }
    }

    NSLog(@"Save button 2 : %@", mutableTextArray);
    if([mutableTextArray count] != i)
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Cannot proceed" message:@"Please answer all questions" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
        [alert show];
        return;
    }

    [self fetchStrings:mutableTextArray];
于 2013-11-18T05:15:18.903 に答える