¿Es posible mostrar una vista de alerta con un cuadro de texto dentro como la aplicación AppStore. Solicita una contraseña en dicho diálogo. He visto al menos un par de otras aplicaciones de terceros que lo usan. ¿Es una API privada?Mostrando una vista de alerta con un cuadro de texto en el iPhone
Respuesta
Sí, no está documentado. Para agregar un campo de texto a UIAlertView, use addTextFieldWithValue: label: method. Llama con el texto predeterminado como primer argumento y el texto que se muestra en un campo vacío como el segundo. Una vez hecho esto, puede acceder al campo mediante textFieldAtIndex: n - ver a continuación.
UIAlertView *alert = [[UIAlertView alloc] initWithTitle: @"Who are you?"
message:@"Give your full name"
delegate:self cancelButtonTitle:@"Cancel"
otherButtonTitles:@"OK", nil];
[alert addTextFieldWithValue:@""label:@"Name"];
// Customise name field
UITextField* name = [alert textFieldAtIndex:0];
name.clearButtonMode = UITextFieldViewModeWhileEditing;
name.keyboardType = UIKeyboardTypeAlphabet;
name.keyboardAppearance = UIKeyboardAppearanceAlert;
[alert show];
El siguiente fragmento de código muestra cómo recuperar el valor en el campo Nombre:
NSLog("Name is %@", [[modalView textFieldAtIndex:0] text]);
Jeff Lamarche, reportaron algunas sample code on his blog para hacer precisamente esto. El formato parecía un poco inestable cuando lo probé, pero probablemente sea un buen punto de partida.
Aquí hay una forma de "Apple Approved" de hacerlo desde Tharindu Madushana. Me lo dio a su comentario en esta página: http://iosdevelopertips.com/undocumented/alert-with-textfields.html
// Ask for Username and password.
UIAlertView *alertview = [[UIAlertView alloc] initWithTitle:@"Twitter Details!" message:@"\n \n \n" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];
// Adds a username Field
UITextField *utextfield = [[UITextField alloc] initWithFrame:CGRectMake(12.0, 45.0, 260.0, 25.0)];
utextfield.placeholder = @"Username";
[utextfield setBackgroundColor:[UIColor whiteColor]];
[alertview addSubview:utextfield];
// Adds a password Field
UITextField *ptextfield = [[UITextField alloc] initWithFrame:CGRectMake(12.0, 80.0, 260.0, 25.0)];
ptextfield.placeholder = @"Password";
[ptextfield setSecureTextEntry:YES];
[ptextfield setBackgroundColor:[UIColor whiteColor]]; [alertview addSubview:ptextfield];
// Move a little to show up the keyboard
CGAffineTransform transform = CGAffineTransformMakeTranslation(0.0, 80.0);
[alertview setTransform:transform];
// Show alert on screen.
[alertview show];
[alertview release];
//...
// Don't forget to release these after getting their values
[utextfield release];
[ptextfield release];
Y por último para obtener el texto de nuevo
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex == 0)
return; //Cancel
UITextField *field = (UITextField *)[[alertView subviews] lastObject];
NSLog (@"%@", field.text);
}
Personalmente eliminaría la transformación y agregaría [utextfield becomeFirstResponder] después de liberar la vista de alerta para que el teclado aparezca automáticamente. – AlBeebe
Éste es realmente un viejas preguntas con respuestas muy viejos.
Esta es una muestra de cómo consigo un UITextField en un UIAlertView desde iOS 5:
UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"New List Name" message:@"" delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:@"Continue", nil];
message.alertViewStyle = UIAlertViewStylePlainTextInput;
self.alertTextField = [message textFieldAtIndex:0];
self.alertTextField.keyboardType = UIKeyboardTypeAlphabet;
message.delegate = self;
[message show];
[self.alertTextField becomeFirstResponder];
donde alertTextField se estableció de esta manera:
@property (nonatomic, strong) UITextField *alertTextField;
- 1. Mostrando una alerta en un manejador de excepciones de nivel superior de iPhone
- 2. Mostrando un "botón de borrar" (botón de eliminar) en un cuadro de texto de aplicación web de iPhone
- 3. Cuadro de alerta de JavaScript con temporizador
- 4. Django, mostrando una vista en otra vista?
- 5. Deshabilitar un cuadro de texto con CSS
- 6. ¿Puedo leer el cuadro de alerta de JavaScript con WatiN?
- 7. WebDriver descartar un cuadro de alerta
- 8. mostrando el número de línea en el cuadro de texto enriquecido C#
- 9. Cuadro de diálogo de alerta en android
- 10. botón clic evento perdido debido al cuadro de alerta en cuadro de texto evento onblur
- 11. ¿Mostrando animación por cuadro?
- 12. Recuperar cuadro de diálogo de alerta FastScroll
- 13. ¿Cómo creo texto borroso en una vista de iPhone?
- 14. Validación nula en el cuadro Editar texto en el Diálogo de alerta - Android
- 15. Cómo agregar dos campos de texto de edición en un cuadro de diálogo de alerta
- 16. Color del texto en una alerta de Javascript
- 17. Cuadro de alerta en IE Tester
- 18. teclado de iphone sin vista de texto
- 19. El uso de un cuadro de texto HTML en lugar de un cuadro de texto ASP.NET
- 20. ¿Cómo editar un título de cuadro de alerta de JavaScript?
- 21. Diálogo de alerta con el texto seguido de una casilla de verificación y 2 botones
- 22. volcar objeto jquery en un cuadro de alerta
- 23. javascript - desenfocar un cuadro de texto
- 24. Rellene un cuadro de texto con jQuery
- 25. ¿Cómo se puede inflar un diseño que contiene la vista de lista en un cuadro de diálogo de alerta?
- 26. OnClickListener dentro de un cuadro de alerta personalizado Android
- 27. Mostrando solo los últimos 4 dígitos en un cuadro de texto
- 28. Mostrando un cuadro de comentario en ActiveAdmin Show página personalizada
- 29. cuadro de texto con un fondo transparente
- 30. Pestaña '\ t' en el cuadro de alerta que no funciona con Chrome
Como otras personas ya se ha mencionado, esta voluntad que te pateen desde la tienda de aplicaciones hoy en día. – zoul
De acuerdo, esto fue escrito hace mucho tiempo. ¿Debo eliminar la respuesta? –
@JaneSales: No eliminaría la respuesta, pero definitivamente agregaría un aviso importante y notable en la parte superior de su publicación. – FreeAsInBeer