Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 使用文本字段和按钮显示UIAlertview时出现问题_Iphone - Fatal编程技术网

Iphone 使用文本字段和按钮显示UIAlertview时出现问题

Iphone 使用文本字段和按钮显示UIAlertview时出现问题,iphone,Iphone,我需要在UIAlertview中放置3个按钮和一个文本字段。我写了这样的代码 UIAlertView *share = [[UIAlertView alloc] initWithTitle:@"Refresh" message:nil delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", @"Contacts", nil]; share.tag = 2; [share setDelegate:self];

我需要在UIAlertview中放置3个按钮和一个文本字段。我写了这样的代码

UIAlertView *share = [[UIAlertView alloc] initWithTitle:@"Refresh" message:nil   delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", @"Contacts", nil];
 share.tag = 2;
 [share setDelegate:self];
 [share setTitle:@"Enter Name"];
 [share setMessage:@" "];

 nameField = [[UITextField alloc] initWithFrame:CGRectMake(20.0, 45.0, 245.0, 25.0)];
 [nameField setBackgroundColor:[UIColor whiteColor]];
 [nameField setKeyboardType:UIKeyboardTypePhonePad];
 [share addSubview:nameField];
 [share show];
 [share release];
 [nameField release];
但是它显示了

如果我放置两个按钮,它显示良好

当我添加新按钮时,它会添加到下一行,如上面链接所示

但我需要在一列中显示所有三个按钮


我该怎么做

您必须通过在消息字符串中添加必要数量的@“\n”来为UITextField腾出空间

添加两个选项(例如:@“是否要刷新数据”\n\n),然后查看会发生什么

我过去曾尝试过这种方法,但在显示警报时旋转设备时出现了一些问题。布局变得一团糟

您也可以尝试子类化UIAlertView,如中所示

编辑:

我刚刚尝试并意识到UIAlertView有一个最大高度,这就是为什么它不工作的原因(也是为什么它可以使用2个按钮,而不能使用3个或更多按钮的原因)

你不能安排UIAlertView的按钮,至少不能安排公共API,如果你对未记录的API感兴趣,看看Erica Sadun的书,有很多关于UIAlertView定制的东西。但在此之前,为什么需要这两个按钮:“确定”和“完成”?它们不是有相同的意思吗?(至少从用户的角度来看)

我的观点是,如果3个按钮的工作量太大,那么重新考虑一下你的标题/消息,也许只需要2个就可以了


希望对您有所帮助

我正在尝试将消息置为零,但没有更改。我需要在一列中水平放置按钮,而不是垂直放置按钮。。。你可以编辑你的答案吗?有没有其他类似我要求的方法