我有一个应用程序,其中我使用特定设计是有原因的。我将文本字段放在带有背景图像的其他按钮上方的警报视图中。在ios 6版本中一切正常。
UIAlertView *av=[[UIAlertView alloc] initWithTitle:@"fdhdj" message:@" hdfjkhfjkhdk" delegate:self cancelButtonTitle:@"ok" otherButtonTitles:@" ",@"cancel",nil];
av.alertViewStyle = UIAlertViewStylePlainTextInput;
namefield = [[UITextField alloc] initWithFrame:CGRectMake(10.0,43.0, 264.0, 44.0)];
namefield.borderStyle = UITextBorderStyleNone;
namefield.background = [UIImage imageNamed:@"text_field_default.png"];
namefield.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
namefield.textAlignment = UITextAlignmentCenter;
//[namefield setBackgroundColor:[UIColor whiteColor]];
[av addSubview:namefield];
[namefield release];
av.tag=12;
av.delegate=self;
[av show];
[av release];
但现在在ios 7中,我听说你无法轻易改变UIAlertView的视图层次结构。 这种情况的另一种选择是设置
alert.alertViewStyle = UIAlertViewStylePlainTextInput
但是我们可以在任何我们想要的地方添加该文本字段吗?就像我上面的第一个其他按钮一样,任何人都可以帮助我吗?
答案 0 :(得分:3)
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Enter Student Name" message:@"" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Save",nil];
[alertView setAlertViewStyle:UIAlertViewStylePlainTextInput];
[alertView show];
我曾经这样做,而且工作得很好
答案 1 :(得分:2)
答案 2 :(得分:0)
您的问题的简单答案是否定的,您不能更改此testField
UIAlertViewStylePlainTextInput
中的任何内容,您不应该这样做。
这是来自Apple:
UIAlertView类旨在按原样使用,但不是 支持子类化。此类的视图层次结构是私有的 不得修改。
不幸的是,你听到的我听说你无法轻易改变UIAlertView 的视图层次结构是错误的,你根本无法改变iOS7中UIAlertView
的视图层次结构。
网上有一个很好的替代方案,您可以登入cocoacontrols.com
答案 3 :(得分:0)
你不能轻易改变iOS 7中UIAlertView的视图层次结构。(你也不应该;文档特别告诉你不要这样做。)转到开发人员论坛,看看有关它的长篇讨论。
在您的情况下,另一种选择是设置alert.alertViewStyle = UIAlertViewStylePlainTextInput;这将为您添加一个文本字段。您可以使用UITextField * textField = [alertView textFieldAtIndex:0];。
在UIAlertView委托回调中访问它。