如何在ios 8的alertview中添加文本input?

我想在ios 8的警报视图中添加文本input。我知道这是使用UIAlertController完成,但没有任何想法。 怎么做 ?

截图

  UIAlertController * alertController = [UIAlertController alertControllerWithTitle: @"Login" message: @"Input username and password" preferredStyle:UIAlertControllerStyleAlert]; [alertController addTextFieldWithConfigurationHandler:^(UITextField *textField) { textField.placeholder = @"name"; textField.textColor = [UIColor blueColor]; textField.clearButtonMode = UITextFieldViewModeWhileEditing; textField.borderStyle = UITextBorderStyleRoundedRect; }]; [alertController addTextFieldWithConfigurationHandler:^(UITextField *textField) { textField.placeholder = @"password"; textField.textColor = [UIColor blueColor]; textField.clearButtonMode = UITextFieldViewModeWhileEditing; textField.borderStyle = UITextBorderStyleRoundedRect; textField.secureTextEntry = YES; }]; [alertController addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { NSArray * textfields = alertController.textFields; UITextField * namefield = textfields[0]; UITextField * passwordfiled = textfields[1]; NSLog(@"%@:%@",namefield.text,passwordfiled.text); }]]; [self presentViewController:alertController animated:YES completion:nil]; 
 UIAlertView *myView = [[UIAlertView alloc]initWithTitle:@"Input" message:@"Enter your value" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil]; myView.alertViewStyle = UIAlertViewStylePlainTextInput; [myView textFieldAtIndex:0].delegate = self; [myView show]; 

你可以用这种方式覆盖。谢谢

AlertViewController

  // use UIAlertController UIAlertController *alert= [UIAlertController alertControllerWithTitle:@"Title" message:@"SubTitle" preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction* ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action){ //Do Some action here UITextField *textField = alert.textFields[0]; NSLog(@"text was %@", textField.text); }]; UIAlertAction* cancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) { NSLog(@"cancel btn"); [alert dismissViewControllerAnimated:YES completion:nil]; }]; [alert addAction:ok]; [alert addAction:cancel]; [alert addTextFieldWithConfigurationHandler:^(UITextField *textField) { textField.placeholder = @"placeHolderText"; textField.keyboardType = UIKeyboardTypeDefault; }]; [self presentViewController:alert animated:YES completion:nil]; 

UIAlertView中

  UIAlertView* dialog = [[UIAlertView alloc] initWithTitle:@"Title" message:@"SubTitle" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil]; dialog.alertViewStyle = UIAlertViewStylePlainTextInput; [dialog show]; } 

用Swift 3实现的例子:

 var textField: UITextField? // create alertController let alertController = UIAlertController(title: "Title", message: "Message", preferredStyle: .alert) alertController.addTextField { (pTextField) in pTextField.placeholder = "usefull placeholdr" pTextField.clearButtonMode = .whileEditing pTextField.borderStyle = .none textField = pTextField } // create cancel button alertController.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: { (pAction) in alertController.dismiss(animated: true, completion: nil) })) // create Ok button alertController.addAction(UIAlertAction(title: "OK", style: .default, handler: { (pAction) in // when user taps OK, you get your value here let inputValue = textField?.text alertController.dismiss(animated: true, completion: nil) })) // show alert controller self.present(alertController, animated: true, completion: nil) 
 UIAlertView *av = [[UIAlertView alloc]initWithTitle:@"Title" message:@"Please enter someth" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil]; av.alertViewStyle = UIAlertViewStylePlainTextInput; [av textFieldAtIndex:0].delegate = self; [av show]; 

此外,您将需要实现UITextFieldDelegate,UIAlertViewDelegate协议。

如果你用户uialertcontroller然后使用这一个

 UIAlertController * alert= [UIAlertController alertControllerWithTitle:@"My Title" message:@"Enter User Credentials" preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction* ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) { //Do Some action here }]; UIAlertAction* cancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) { [alert dismissViewControllerAnimated:YES completion:nil]; }]; [alert addAction:ok]; [alert addAction:cancel]; [alert addTextFieldWithConfigurationHandler:^(UITextField *textField) { textField.placeholder = @"Username"; }]; [alert addTextFieldWithConfigurationHandler:^(UITextField *textField) { textField.placeholder = @"Password"; textField.secureTextEntry = YES; }]; [self presentViewController:alert animated:YES completion:nil]; 

带有文本input的UIAlertViewController

 UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Title" message:nil preferredStyle:UIAlertControllerStyleAlert]; [alert addTextFieldWithConfigurationHandler:^(UITextField *textField) { // optionally configure the text field textField.keyboardType = UIKeyboardTypeAlphabet; }]; UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { UITextField *textField = [alert.textFields firstObject]; textField.placeholder = @"Enter Input"; }]; [alert addAction:okAction]; [self presentViewController:alert animated:YES completion:nil];