stepper - Datepicker de iPhone en lugar de teclado?
switch ios (5)
Creo que esta es una forma más oficial de hacer esto:
UIDatePicker *datePicker = [[[UIDatePicker alloc] init] autorelease];
datePicker.datePickerMode = UIDatePickerModeDate;
[datePicker addTarget:self action:@selector(datePickerValueChanged:) forControlEvents:UIControlEventValueChanged];
datePicker.tag = indexPath.row;
textField.inputView = datePicker;
¿Cómo lo harías tú?
Tengo un formulario con un UITextField. Cuando hago clic en él, ¿me gustaría mostrar un UIDatePicker en lugar del teclado predeterminado que aparece de forma predeterminada? Tenga en cuenta que también hay otros elementos en mi formulario.
He convertido la respuesta de Johan Kool en rápida si a alguien le gustaría. Coloqué el código en viewDidLoad.
let datePicker = UIDatePicker()
datePicker.datePickerMode = UIDatePickerMode.Date
datePicker.addTarget(self, action: "datePickerValueChanged:", forControlEvents: UIControlEvents.ValueChanged)
textField.inputView = datePicker
en .h
UIDatePicker *datePicker;
NSDate *date;
UIToolbar *keyboardToolbar;
en ViewDidLoad:
if (keyboardToolbar == nil) {
keyboardToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 44)];
[keyboardToolbar setBarStyle:UIBarStyleBlackTranslucent];
UIBarButtonItem *extraSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem *accept = [[UIBarButtonItem alloc] initWithTitle:@"Accept" style:UIBarButtonItemStyleDone target:self action:@selector(closeKeyboard:)];
[keyboardToolbar setItems:[[NSArray alloc] initWithObjects: extraSpace, accept, nil]];
}
self.txtDate.inputAccessoryView = keyboardToolbar;
datePicker = [[UIDatePicker alloc] init];
datePicker.datePickerMode = UIDatePickerModeDate;
[datePicker addTarget:self action:@selector(datePickerValueChanged:) forControlEvents:UIControlEventValueChanged];
self.txtDate.inputView = datePicker;
- (void)datePickerValueChanged:(id)sender{
date = datePicker.date;
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"dd/MM/YYYY"];
[self.txtDate setText:[df stringFromDate:date]];
}
en el guión gráfico agregar a txtDate -> EditingDidEnd
- (IBAction)establishHour:(id)sender{
hour = hourPicker.date;
NSDateFormatter *hf = [[NSDateFormatter alloc] init];
[hf setDateFormat:@"HH:MM"];
[self.txtHour setText:[hf stringFromDate:hour]];
}
Establece el teclado como DatePicker y creó una barra de herramientas con un botón para aceptar la selección.
Agregado en archivos .h:
UIViewController <UIPickerViewDelegate, UIPickerViewDataSource>
Agregado en archivos .m:
{
NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.dateStyle = NSDateFormatterMediumStyle;
pTxtDate.text = [NSString stringWithFormat:@"%@",
[df stringFromDate:[NSDate date]]];
NSLog(@"pTxtDate.text %@",pTxtDate.text);
[df release];
[self.view addSubview:pTxtDate];
[pTxtDate release];
DatePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 250, 325, 300)];
DatePicker.datePickerMode = UIDatePickerModeDate;
DatePicker.hidden = NO;
DatePicker.date = [NSDate date];
[DatePicker addTarget:self
action:@selector(LabelChange:)
forControlEvents:UIControlEventValueChanged];
[self.view addSubview:DatePicker];
[DatePicker release];
}
- (void)LabelChange:(id)sender {
NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.dateStyle = NSDateFormatterMediumStyle;
pTxtDate.text = [NSString stringWithFormat:@"%@",
[df stringFromDate:DatePicker.date]];
}
(IBAction)estableceHora:(id)sender{
Hora = horaPicker.date;
NSDateFormatter *hf = [[NSDateFormatter alloc] init];
[hf setDateFormat:@"HH:MM"];
[self.txtHora setText:[hf stringFromDate:Hora]];
}