2009-01-03 6 views
2

J'ai utilisé dans le moteur de jeu de cocos2d. ceci est mon code:Comment puis-je obtenir une valeur de UITextField dans UIAlertView?

-(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 addButtonWithTitle:@"Done"]; 
    [dialog addButtonWithTitle:@"Cancel"]; 

    nameField.clearButtonMode = UITextFieldViewModeWhileEditing; 
    nameField.keyboardType = UIKeyboardTypeNumbersAndPunctuation; 

     //timeStatus is a int type global variable // 
    timeStatus =[nameField.text intValue]; //** this line not working**// 

    [nameField release]; 
    [dialog show]; 

} 

Répondre

0

Relâchez nameField plus tard, et obtenez la propriété text à partir de là.

2

La raison pour laquelle vous ne pouvez pas obtenir une valeur est que la fonction quittera AVANT que l'utilisateur ne tape quoi que ce soit! Lorsque vous appelez [dialogue] la boîte de dialogue est affichée à l'utilisateur où ils peuvent alors entrer du texte.

Vous devez attendre que l'utilisateur sélectionne un bouton, ce qui déclenchera votre fonction de délégué, puis accédez à la propriété du champ de texte. Remarque pour ce faire, vous devez soit conserver un pointeur sur l'objet UITextField que vous avez ajouté (plus facile), soit le retrouver parmi les sous-vues et le convertir.

Questions connexes