Проблема UITextField в iOS 7

UIAlertView с UITextField не работает в iOS 7. Как исправить?

Вот ScreenShot:

Вот мой код:

Как я могу получить UITextFeield в UIAlertView в iOS7?

-(void)takeUserName
{
 mChangePlayerAlert = [[UIAlertView alloc] init];
 mChangePlayerAlert.title = title; 
 mChangePlayerAlert.message = @"\n";
 mChangePlayerAlert.delegate = self;
 [mChangePlayerAlert addButtonWithTitle:@"Save"];
 [mChangePlayerAlert addButtonWithTitle:@"Cancel"];

 CGRect frame;
 frame = CGRectMake(20, 45, 245, 27);//(200, 500, 400, 120);

 mTextFeild = [[UITextField alloc] initWithFrame:frame];
 mTextFeild.textColor = [UIColor blueColor];
 mTextFeild.borderStyle = UITextBorderStyleRoundedRect;

 mTextFeild.keyboardType = inType;//;
 mTextFeild.returnKeyType = UIReturnKeyDone;
 mTextFeild.autocorrectionType = UITextAutocorrectionTypeNo;
 mTextFeild.autocapitalizationType = UITextAutocapitalizationTypeNone;
 mTextFeild.delegate = self;

 [mChangePlayerAlert addSubview:mTextFeild];

 mTextFeild.delegate = self;
 [mTextFeild becomeFirstResponder];

 [mChangePlayerAlert show];
}
4 ответа

Вы не должны использовать текстовое представление.

mChangePlayerAlert.alertViewStyle = UIAlertViewStylePlainTextInput;

Чтобы получить значение позже, используйте textFieldAtIndex: в textFieldAtIndex: просмотра предупреждения:

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
 if(buttonIndex != alertView.cancelButtonIndex)
 {
 NSString* text = [alertView textFieldAtIndex:0].text;

 ...
 }
}


Вы можете использовать Custom Alert View вместо этого и добавлять туда любой контент: Пользовательский iOS 7 Alert View


если выше ответ не работает, попробуйте это

[txtvwMessage setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];

Как правило, преобразование iOS6 в iOS7 теряет элементы управления дизайном. Вот почему концепция автосохранения помогает вам в конверсии


Попробуй это.

- (********)showAlert:(id)sender
{
 UIAlertView *alertView = [[UIAlertView alloc] init];

 switch (((******** *)sender).tag)
 {
 // Default Alert View
 case 1001:

 alertView.title = @"Default Alert View";
 alertView.message = @"UIAlertViewStyleDefault";
 [alertView addButtonWithTitle:@"OK"];

 break;

 // Secure Alert View
 case 1002:

 alertView.title = @"Secure Alert View";
 alertView.message = @"UIAlertViewStyleSecureTextInput";
 alertView.alertViewStyle = UIAlertViewStyleSecureTextInput;
 [alertView addButtonWithTitle:@"OK"];
 [alertView addButtonWithTitle:@"Cancel"];

 break;

 // Plain Alert View
 case 1003:

 alertView.title = @"Plain Alert View";
 alertView.message = @"UIAlertViewStylePlainTextInput";
 alertView.alertViewStyle = UIAlertViewStylePlainTextInput;
 [alertView addButtonWithTitle:@"OK"];
 [alertView addButtonWithTitle:@"Cancel"];

 break;

 // Login ALert View
 case 1004:

 alertView.title = @"Login Alert View";
 alertView.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput;
 [alertView addButtonWithTitle:@"OK"];
 [alertView addButtonWithTitle:@"Cancel"];

 break;
 }

 [alertView show];
 }

licensed under cc by-sa 3.0 with attribution.