0

アラートビューを作成しました。アラートビューに1つのテキストフィールドが表示されますが、キーボードの戻るボタンをクリックしても、デリゲートを.hファイルに追加しても消えません。

-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
-(IBAction)barButtonPressed:(id)sender 
{ 
UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"Enter Data" message:@"\n\n\n" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok", nil];

textUserName =[[UITextField alloc] initWithFrame:CGRectMake(50.0f, 50.0f, 200.0f, 40.0f)];
textUserName.placeholder = @"Name";
textUserName.autocorrectionType = UITextAutocorrectionTypeNo;
textUserName.textAlignment=UITextAlignmentLeft;
textUserName.userInteractionEnabled = YES;
textUserName.enabled = YES;
textUserName.enablesReturnKeyAutomatically= NO;
textUserName.clearsOnBeginEditing = NO;
textUserName.borderStyle = UITextBorderStyleRoundedRect;
textUserName.keyboardType = UIKeyboardTypeDefault;
textUserName.delegate = self;
//[textUserName setReturnKeyType:UIReturnKeyDone];
 **strong text**
[alert
 addSubview:textUserName];

[alert show];
[self resignFirstResponder];
}

ありがとうございました

4

2 に答える 2

3

を使用UIAlertViewStylePlainTextInputUIAlertViewて、 alertView のテキスト フィールドを取得できます。

UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"Enter Data" message:@"\n\n\n" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok", nil];

// Set alertView style
alert.alertViewStyle = UIAlertViewStylePlainTextInput;

textUserName =[alert textFieldAtIndex:0];

// Then customize your textField
textUserName.placeholder = @"Name";
textUserName.autocorrectionType = UITextAutocorrectionTypeNo;
textUserName.textAlignment=UITextAlignmentLeft;
textUserName.userInteractionEnabled = YES;
textUserName.enabled = YES;
textUserName.enablesReturnKeyAutomatically= NO;
textUserName.clearsOnBeginEditing = NO;
textUserName.borderStyle = UITextBorderStyleRoundedRect;
textUserName.keyboardType = UIKeyboardTypeDefault;

[alert show];

これでは、デリゲートを個別に設定する必要はありません..

于 2013-01-02T11:51:31.063 に答える
0

UITextField初期化後にデリゲートプロパティを設定する必要があります。

使用する:

textUserName =[[UITextField alloc] initWithFrame:CGRectMake(50.0f, 50.0f, 200.0f, 40.0f)];
textUserName.delegate = self;
于 2013-01-02T12:03:57.757 に答える