UIAlertview上的iOS多个文本字段在IOS 7中

时间:2013-09-19 04:10:03

标签: ios uitextfield uialertview textfield

所以新的iOS 7已经问世,我正在尝试为UIAlertviews添加多个textFields和标签。我需要三个。我一直在尝试将它们添加为子视图,这不再适用。我还尝试使用UIAlertViewStylePlainTextInput添加多行,但它似乎只返回一个文本字段。

我需要添加标签以向他们展示输入内容。有没有办法用新的iOS 7完成这项任务?

3 个答案:

答案 0 :(得分:14)

我在iOS7中使用带有多个文本字段的UIAlertView找到的唯一解决方案仅用于登录。

使用此行初始化alertView

[alert setAlertViewStyle:UIAlertViewStyleLoginAndPasswordInput];

这是为了获取用户输入:

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

除登录以外的其他目的查看其他线程:UIAlertView addSubview in iOS7

答案 1 :(得分:12)

您可以在iOS7的标准提醒视图中将 accessoryView 更改为任何自己的 customContentView

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

请注意,您必须在 [alertView show] 之前调用此方法。

最简单的说明示例:

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];

enter image description here

答案 2 :(得分:10)

如果您只想向UIAlertView添加两个文本字段,可以使用UIAlertViewStyleLoginAndPasswordInput并修改文本字段,如下所示:

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];

之后,在UIAlertView委托中,您可以使用以下方式获取文本:

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