views:

1720

answers:

3

I have Used in cocos2d game engine. this is my code:

-(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];

}
A: 

Release nameField later, and get the text property from there.

Ben Alpert
A: 

Thanks soprano, for ur reply but I don't understand this. plz describe this in details.

Nahid
+2  A: 

The reason you cannot get a value is that the function will exit BEFORE the user types anything! When you call [dialog show] the dialog is displayed to the user where they may then enter text.

You should wait until the user selects a button, which will trigger your delegate function, and THEN access the text field property.

Note to do this you will either need to retain a pointer to the UITextField object you added (easiest), or find it again amongst the subviews and cast it.

Andrew Grant