Comment obtenir la valeur d'un champ de texte avec une vue d'alerte utilisant Cocos2d?

StackOverflow https://stackoverflow.com/questions/415855

  •  03-07-2019
  •  | 
  •  

Question

J'essaie de développer une application en utilisant Cocos2d. Je ne peux pas tirer profit de textfield. Comment obtenir la valeur d'un champ de texte (dans une vue d'alerte) en utilisant Cocos2d?

-(void)timed1: (id)sender 
{
    UIAlertView* dialog = [[[UIAlertView alloc] init] retain];
    [dialog setDelegate:self];

    [dialog setTitle:@"Enter Time:"];
    [dialog setMessage:@" "];
    UITextField * nameField = [[UITextField alloc] initWithFrame:CGRectMake(20.0, 45.0, 245.0, 25.0)];
    [dialog addSubview:nameField];
    [nameField setBackgroundColor:[UIColor whiteColor]];
    CGAffineTransform moveUp = CGAffineTransformMakeTranslation(0.0, 70.0);
    [dialog setTransform: moveUp];
    [dialog setBackgroundColor:[UIColor clearColor]];
    [dialog addButtonWithTitle:@"Done"];
    [dialog show];

    nameField.clearButtonMode = UITextFieldViewModeWhileEditing;
    nameField.keyboardType = UIKeyboardTypeNumbersAndPunctuation;
    nameField.keyboardAppearance = UIKeyboardAppearanceAlert;
    nameField.autocapitalizationType = UITextAutocapitalizationTypeWords;

        //  timeStatus is a int type global variable
    timeStatus =[nameField.text intValue]; // this line not working i can't getting value namefield


    [dialog release];
    [nameField release];

}
Était-ce utile?

La solution

Les feuilles d'action et les alertes sont gérées de manière asynchrone. Dans votre cas, le message [dialog show] planifie simplement l'événement show pour une exécution ultérieure (gérée par la boucle d'exécution principale). Si vous mettez quelques NSLog () s, vous verrez que le message [show] revient presque immédiatement, moment auquel votre utilisateur n'a pas saisi de données, le texte de nameField est vide et il est converti en un entier int de 0. .

Vous souhaitez un dialogue modal bloquant avec saisie - les feuilles d'action et les alertes ne sont pas conçues pour une saisie utilisateur au-delà des pressions des boutons oui / non / annuler. Vous devrez créer votre propre vision: pas trop difficile, mais cela demandera plus de travail que d’utiliser une feuille d’action / une alerte.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top