UIAlertView

In a recent discussion with the UI designers for an upcoming iPhone application, I was asked if it’s possible to create an Alert that would overlay the splash screen, prompting for a username and password.

My original response (based on searching the documentation) was a regrettable, no. However, after some digging I did come upon an undocumented method inside the UIAlertView: addTextFieldWithValue. What follows is a screenshot of how you might use this feature:

 

The code for the alert example follows. Notice how you can create a pointer to the UITextFields and modify its attributes, very cool.

In the .h file

UITextField *textfieldName;
UITextField *textfieldPassword;
In the .m file

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
  // Clicked the Submit button
  if (buttonIndex != [alertView cancelButtonIndex])
  {
    NSLog(@"Name: %@", textfieldName.text);
    NSLog(@"Name: %@", textfieldPassword.text);
  }
}

...

- (void) someMethod
{
  UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Please Login" message:@""
        delegate:self cancelButtonTitle:@"Cancel"  otherButtonTitles:@"Submit", nil];

  [alert addTextFieldWithValue:@"" label:@"User Name"];
  [alert addTextFieldWithValue:@"" label:@"Password"];

  // Username
  textfieldName = [alert textFieldAtIndex:0];
  textfieldName.keyboardType = UIKeyboardTypeAlphabet;
  textfieldName.keyboardAppearance = UIKeyboardAppearanceAlert;
  textfieldName.autocorrectionType = UITextAutocorrectionTypeNo;

  // Password
  textfieldPassword = [alert textFieldAtIndex:1];
  textfieldPassword.clearButtonMode = UITextFieldViewModeWhileEditing;
  textfieldPassword.keyboardType = UIKeyboardTypeNumbersAndPunctuation;
  textfieldPassword.keyboardAppearance = UIKeyboardAppearanceAlert;
  textfieldPassword.autocorrectionType = UITextAutocorrectionTypeNo;
  textfieldPassword.secureTextEntry = YES;

  [alert show];
}
*Update: This morning I was running an application that my friend Rodney Aiglstorfer wrote, mJaiku (mJaiku on the App Store), I noticed Rodney is using this idea when the application prompts the user to add a new location (see below). Guess I should of inquired with Rodney before I spent time researching this :)

 

BTW, if you are a Jaiku user, mJaiku for the iPhone is a must have!

你可能感兴趣的:(iphone)