2011-11-21 74 views

回答

2

由于iOS5的,你可以使用UIAlertViewStyle不同的TextInput添加到UIAlertView中

Example Link

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]; 
0

只是它作为一个subView与你的愿望帧大小添加到UIAlertView对象!

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]; 
0

创建从UIAlertView中继承的自定义类和一个文本框元素添加进去。

然后写这个方法:

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

    return self; 
} 

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

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]; 
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];