2009-01-06 5 views
0

J'essaie de développer une application en utilisant Cocos2d. Je ne peux pas obtenir la valeur de textfield. Comment obtenir la valeur du champ de texte (dans une vue d'alerte) en utilisant Cocos2d?Comment obtenir la valeur du champ de texte par 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]; 

} 
+0

S'il vous plaît comment avez-vous résolu cela? J'ai le même problème: applicaion fenêtre principale va créer sur le bouton nouvelle fenêtre avec le champ de texte mais je ne peux pas accéder à son contenu dans la fenêtre principale alors. – uniquepito

Répondre

0

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(), vous verrez que le message [show] revient presque immédiatement, à quel point votre utilisateur n'a entré aucune donnée, le texte de nameField est vide, et ceci convertit en un int de 0 Vous voulez une boîte de dialogue modale bloquante avec des feuilles d'action d'entrée et les alertes ne sont pas conçues pour l'entrée utilisateur au-delà des poussées de bouton oui/non/annulation. Vous devrez préparer votre propre point de vue: pas trop dur, mais il faudra plus de travail que d'utiliser une feuille d'action/alerte.

Questions connexes