Как добавить ввод текста в alertview ios 8?
Я хочу добавить ввод текста в alert-view ios 8.
Я знаю, что это было сделано с помощью UIAlertController
, но не имею ни малейшего представления.
Как это сделать ?
8 ответов:
Скриншот
Код
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];
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]; }
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];
Вы можете покрыть этот путь .Спасибо
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];
Пример реализации с 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)
Вот удобный метод с обработчиком отправки / отмены и завершения для текста, если он введен:
/** Presents an alert controller with a single text field for user input - parameters: - title: Alert title - message: Alert message - placeholder: Placeholder for textfield - completion: Returned user input */ func showSubmitTextFieldAlert(title: String, message: String, placeholder: String, completion: @escaping (_ userInput: String?) -> Void) { let alertController = UIAlertController(title: title, message: message, preferredStyle: .alert) alertController.addTextField { (textField) in textField.placeholder = placeholder textField.clearButtonMode = .whileEditing } let submitAction = UIAlertAction(title: "Submit", style: .default) { (action) in let userInput = alertController.textFields?.first?.text completion(userInput) } let cancelAction = UIAlertAction(title: "Cancel", style: .cancel) { (_) in completion(nil) } alertController.addAction(submitAction) alertController.addAction(cancelAction) present(alertController, animated: true) }
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];
func askForName() { let alert = UIAlertController(title: "Enter Text", message: "Enter some text below", preferredStyle: .alert) alert.addTextField { (textField) in textField.text = "New Text" } let action = UIAlertAction(title: "OK", style: .default, handler: { [weak alert] (_) in let textField = alert!.textFields![0] print("Text field: \(textField.text)") }) alert.addAction(action) present(alert, animated: true, completion: nil)
}