如何将TextField放入AlertView?

时间:2011-11-21 06:09:28

标签: iphone objective-c uitextfield uialertview

  

可能重复:
  UITextField in UIAlertView on iPhone - how to make it responsive?
  UITextField in UIAlertView alternative?

我希望在向用户显示警报时将TextField放在AlertView中。

7 个答案:

答案 0 :(得分:2)

从iOS5开始,您可以使用UIAlertViewStyle将不同的Textinput添加到UIAlertview

Example Link

答案 1 :(得分:0)

来自UITextField in UIAlertView on iPhone - how to make it responsive?

UIAlertView* dialog = [[UIAlertView alloc] init];
[dialog setDelegate:self];
[dialog setTitle:@"Enter Name"];
[dialog setMessage:@" "];
[dialog addButtonWithTitle:@"Cancel"];
[dialog addButtonWithTitle:@"OK"];

nameField = [[UITextField alloc] initWithFrame:CGRectMake(20.0, 45.0, 245.0, 25.0)];
[nameField setBackgroundColor:[UIColor whiteColor]];
[dialog addSubview:nameField];
CGAffineTransform moveUp = CGAffineTransformMakeTranslation(0.0, 100.0);
[dialog setTransform: moveUp];
[dialog show];
[dialog release];
[nameField release];

答案 2 :(得分:0)

只需将其subView添加到UIAlertView对象中即可获得所需的帧大小!

答案 3 :(得分:0)

我想出了这个,它有点长,但是我设置它并忘了它有效......

alertView = [[UIAlertView alloc] initWithTitle:t message:@"" delegate:self     cancelButtonTitle:@"CANCEL" otherButtonTitles:@"OK", nil];

pinField = [[UITextField alloc] initWithFrame:CGRectMake(20, 38, 244, 31)];
pinField.backgroundColor = [UIColor whiteColor];
[alertView show];


[alertView insertSubview:pinField atIndex:2];


NSArray * subviews = [alertView subviews];
UILabel * label1 = [subviews objectAtIndex:1];
UIImageView * bg = [subviews objectAtIndex:0];
UIView * button1 = [subviews objectAtIndex:4];
UIView * button2 = [subviews objectAtIndex:5];
float height = 0;
height = 16 + label1.frame.size.height;
CGRect frame = label1.frame;
frame.origin.y = 8;
label1.frame = frame;

frame = pinField.frame;
frame.origin.y = height;
pinField.frame = frame;

height += 8 + frame.size.height;
frame = button1.frame;
frame.origin.y = height;
button1.frame = frame;

frame = button2.frame;
frame.origin.y = height;
button2.frame = frame;

height += 8 + frame.size.height;
frame = alertView.frame;
frame.size.height = height +8;
alertView.frame= frame;

frame = bg.frame;
frame.size.height = alertView.frame.size.height;
bg.frame = frame;

[pinField release];
[alertView release];

答案 4 :(得分:0)

创建一个继承自UIAlertview的自定义类,并为其添加一个textfield元素。

然后写下这个方法:

-(id)init
{
    txtField = [[UITextField alloc] initWithFrame: CGRectZero]; // your frame here
    [self addSubview: txtField];

    return self;
}

这可能会有所帮助。 现在在其他类中创建该类的对象并进行测试。

答案 5 :(得分:0)

UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:@"Save As" message:@"this gets covered" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];
self.textfield = [[UITextField alloc] initWithFrame:CGRectMake(12.0, 45.0, 260.0, 25.0)];
[self.textfield setBackgroundColor:[UIColor whiteColor]];

[myAlertView addSubview:self.textfield];
[myAlertView show];
[myAlertView release];

答案 6 :(得分:0)

UIAlertView *customAlertView = [[UIAlertView alloc] initWithTitle:@"Your title here!" message:@"this gets covered" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];

UITextField *txtField = [[UITextField alloc] initWithFrame:CGRectMake(12.0, 45.0, 260.0, 25.0)];

[txtField setBackgroundColor:[UIColor whiteColor]];

[customAlertView addSubview:txtField];

[customAlertView show];

[customAlertView release];