Come può ottenere il valore del campo di testo da una vista di avviso utilizzando Cocos2d?
-
03-07-2019 - |
Domanda
Sto cercando di sviluppare un'applicazione usando Cocos2d. Non riesco a ottenere valore dal campo di testo. Come ottenere il valore del campo di testo (in una vista di avviso) utilizzando 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];
}
Soluzione
I fogli di azione e gli avvisi vengono gestiti in modo asincrono. Nel tuo caso, il messaggio [dialog show] si limita a pianificare l'evento show per l'esecuzione successiva (gestita dal ciclo di esecuzione principale). Se inserisci alcuni NSLog (), vedrai che il messaggio [show] ritorna quasi immediatamente, a quel punto il tuo utente non ha inserito alcun dato, il testo di nameField è vuoto e questo si converte in un int di 0 .
Si desidera una finestra di dialogo modale e bloccante con input: i fogli di azione e gli avvisi non sono progettati per l'input dell'utente oltre la pressione del pulsante Sì / No / Annulla. Dovrai preparare una tua visione: non troppo difficile, ma richiederà più lavoro rispetto all'utilizzo di un foglio di azione / avviso.