0

Cocos2d を使用してアプリケーションを開発しようとしています。textfield から値を取得できません。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];

}
4

1 に答える 1

0

アクション シートとアラートは非同期で処理されます。あなたの場合、メッセージ [dialog show] は、後で実行するために show イベントをスケジュールするだけです (メインの実行ループによって処理されます)。いくつかの NSLog() を入力すると、[show] メッセージがすぐに返されることがわかります。この時点で、ユーザーはデータを入力していません。nameField のテキストは空白であり、これは 0 の int に変換されます。 .

入力を伴うブロック型のモーダル ダイアログが必要です。アクション シートとアラートは、[はい]/[いいえ]/[キャンセル] ボタンを押す以外のユーザー入力用に設計されていません。独自のビューを作成する必要があります。それほど難しくはありませんが、アクション シート/アラートを使用するよりも多くの作業が必要になります。

于 2009-03-31T15:18:55.933 に答える