可能重复:
UITextField in UIAlertView on iPhone - how to make it responsive?
UITextField in UIAlertView alternative?
我希望在向用户显示警报时将TextField放在AlertView中。
答案 0 :(得分:2)
从iOS5开始,您可以使用UIAlertViewStyle将不同的Textinput添加到UIAlertview
答案 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];