iOS multiple text fields on a UIAlertview In IOS 7

爷,独闯天下 提交于 2019-12-17 19:36:37

问题


So the new iOS 7 has come out and I'm trying to add multiple textFields and labels to the UIAlertviews. I need three. I've been trying to add them as subviews and that doesn't work anymore. I have also tried to add multiple lines with the UIAlertViewStylePlainTextInput but it only seems to return one text field.

I need to add in labels to show them what to enter as well. Is there a way to accomplish this task with the new iOS 7?


回答1:


The only solution i found using UIAlertView with more than one text field in iOS7 is for login only.

use this line to initialize your alertView

[alert setAlertViewStyle:UIAlertViewStyleLoginAndPasswordInput];

and this to grab the users input:

user = [alert textFieldAtIndex:0].text;
pw = [alert textFieldAtIndex:1].text

For other purposes than login view the other threads like this on: UIAlertView addSubview in iOS7




回答2:


You can change accessoryView to any own customContentView in a standard alert view in iOS7

[alertView setValue:customContentView forKey:@"accessoryView"];

Note that you must call this before [alertView show].

Simplest illustrating example:

UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"TEST" message:@"subview" delegate:nil cancelButtonTitle:@"NO" otherButtonTitles:@"YES", nil];
UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 50)];
v.backgroundColor = [UIColor yellowColor];
[av setValue:v forKey:@"accessoryView"];
[av show];




回答3:


If you want to add just two textfields to your UIAlertView, you can use UIAlertViewStyleLoginAndPasswordInput and modify the textfields as follows:

UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Some Title" message:@"Some Message." delegate:self cancelButtonTitle:@"Okay" otherButtonTitles:@"No, thanks", nil];
alert.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput;
[alert textFieldAtIndex:1].secureTextEntry = NO; //Will disable secure text entry for second textfield.
[alert textFieldAtIndex:0].placeholder = @"First Placeholder"; //Will replace "Username"
[alert textFieldAtIndex:1].placeholder = @"Second Placeholder"; //Will replace "Password"
[alert show];

Afterwards, in the UIAlertView delegate, you can simply get the text using:

text1 = [alert textFieldAtIndex:0].text;
text2 = [alert textFieldAtIndex:1].text;


来源:https://stackoverflow.com/questions/18886048/ios-multiple-text-fields-on-a-uialertview-in-ios-7

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!