tags:

views:

392

answers:

3

Hi all, in my application i was using UIAlertView for login, it contains TextFields, its working perfectly, but i'm getting a warning when i compile the code, i'm using iphone SDK 3.0

code :

loginAlert = [[UIAlertView alloc] initWithTitle:@"Enter the User Name and Password" message:@"" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Login", nil];

[loginAlert addTextFieldWithValue:appDelegate.userName label:@"UserName"];

warning: 'UIAlertView' may not respond to '-addTextFieldWithValue:label:'



txfUserName = [loginAlert textFieldAtIndex:0];

warning: 'UIAlertView' may not respond to '-textFieldAtIndex:'

+1  A: 
UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:@"Your title here!" message:@"this gets covered" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];
UITextField *myTextField = [[UITextField alloc] initWithFrame:CGRectMake(12.0, 45.0, 260.0, 25.0)];
[myTextField setBackgroundColor:[UIColor whiteColor]];
[myAlertView addSubview:testTextField];
CGAffineTransform myTransform = CGAffineTransformMakeTranslation(0.0, 130.0);
[myAlertView setTransform:myTransform];
[myAlertView show];
[myAlertView release];

all credits to: http://www.iphonedevsdk.com/forum/iphone-sdk-development/1704-uitextfield-inside-uialertview.html

Lorenzo Boccaccia
Its working, but there is an initial delay, not as perfect as the private method, thank you for the valuable information
shinto Joseph
you may create the view on the containing UIViewController class initialization and release it when the view unloads, so the delay is masked by the transition.
Lorenzo Boccaccia
+2  A: 

This method is private, you should not use it (your app will be rejected). Maybe they removed or renamed it in the latest SDK. For an alternative, see

http://iphonedevelopment.blogspot.com/2009/02/alert-view-with-prompt.html

fraca7
Thank you for the valuabel information
shinto Joseph
A: 

You can use http://github.com/enormego/EGOTextFieldAlertView. It gives you those private methods, in a subclass of UIAlertView. This way you don't have to change your code at all.

MrMage
Apple uses an automated static analyzer; the app will still be rejected because the method is named the same, I think.
fraca7
As far as I know, this is not the case: to my knowledge, enormego (the creator of that class) did publish some apps with `EGOTextFieldAlertView`.
MrMage
Strange, I've heard of apps rejected because of a private method name. Good to know.
fraca7