所以新的iOS 7已经问世,我正在尝试为UIAlertviews添加多个textFields和标签。我需要三个。我一直在尝试将它们添加为子视图,这不再适用。我还尝试使用UIAlertViewStylePlainTextInput添加多行,但它似乎只返回一个文本字段。
我需要添加标签以向他们展示输入内容。有没有办法用新的iOS 7完成这项任务?
答案 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];
答案 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;