-2

我有一个应用程序,我在其中使用特定设计是有原因的。我在带有背景图像的其他按钮上方的警报视图中放置了一个文本字段。在 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

但是我们可以在任何我们想要的地方添加那个文本字段吗?就像我在第一个其他按钮上方的情况一样。有人可以帮助我吗?

4

4 回答 4

3
 UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Enter Student Name" message:@"" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Save",nil];

 [alertView setAlertViewStyle:UIAlertViewStylePlainTextInput];
 [alertView show];

我曾经这样做过,而且工作得很好

于 2013-10-07T07:23:48.473 回答
2

这是我在 iOS7 中使用 alertView 支持 addSubview 的组件。

CXAlertView - 自定义警报视图,允许您将视图添加为主要内容。

在此处输入图像描述

于 2013-10-07T08:03:27.193 回答
0

testField对您的问题的简单回答是否定的,您不能为此更改任何内容,也不UIAlertViewStylePlainTextInput应该更改。

这是来自苹果:

UIAlertView 类旨在按原样使用,不支持子类化。此类的视图层次结构是私有的,不得修改。

不幸的是,你听说我听说你不能轻易改变 UIAlertView 的视图层次结构 是错误的,你根本不能改变UIAlertViewiOS7 中的视图层次结构。

网上有一个不错的替代方案,你可以在cocoacontrols.com上查看

于 2013-10-07T08:39:40.033 回答
0

在 iOS 7 中,您无法轻易更改 UIAlertView 的视图层次结构。(您也不应该这样做;文档明确告诉您不要这样做。)前往开发人员论坛查看有关它的长时间讨论。

在您的情况下,另一种选择是设置 alert.alertViewStyle = UIAlertViewStylePlainTextInput; 这将为您添加一个文本字段。您可以使用 UITextField *textField = [alertView textFieldAtIndex:0]; 在 UIAlertView 委托回调中访问它。

于 2013-12-28T04:56:37.010 回答