2012-03-05 12 views

Respuesta

7

Lo que hago es tener mi inputView como una vista personalizada, que contiene una UIDatePicker y una barra de herramientas por encima de ella con un botón 'Done' cableado a un método que llama a un método delegado para decirle al objeto que posee el UITextField para despedir el "teclado" llamando al resignFirstResponder.

+0

¿Tiene algún código para configurar el UIBarButtonItem en la UIToolBar? – 8vius

+1

@ 8vius - esa no es realmente la pregunta aquí. Si realmente necesitas ayuda con eso, te sugiero que leas los documentos de 'UIBarButtonItem' y' UIToolbar' y, si todavía estás atascado, haz otra pregunta. – mattjgalloway

+0

@mattjgalloway Lo hago de esta manera, pero al llamar a 'resignFirstResponder' no baja el teclado de vista de entrada personalizado – onmyway133

0

He hecho algo similar cuando creé una vista con un botón y el UIDatePicker, luego presenté esa vista en lugar del UIDatePicker solo. Luego, el botón solo está conectado a un IBAction que mueve la vista.

De esta manera, el botón se mueve con la vista UIDatePicker y se ven "conectados" al usuario. Incluso puede definir este UIView en su plumilla y usar addSubview: en tiempo de ejecución.

2

Crea un UIView (es decir, customDatePickerView) y en esa vista, crea un selector de fecha y un botón hecho y un botón de cancelar en el xib. En el campo de texto delegado:

- (void)textFieldDidBeginEditing:(UITextField *)textField 
{ 
    if (textField == textfieldName) { 
     [textfieldName resignFirstResponder]; 
     //show the view 
     self.customDatePickerView.hidden = NO; 

    } 

}//dismisses keyboard 

función de selector de fecha valor cambiado

- (IBAction)onDatePickerClick:(id)sender { 

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; 
    [dateFormatter setDateFormat:@"MM/dd/YYYY"]; 
    NSDate *selectedDate = [self.wellRecordDatePicker date]; 
    NSString *recordDate = [dateFormatter stringFromDate:selectedDate]; 
    self.yourTextfieldName.text = recordDate; 


} 

- (IBAction)onDoneBtnClick:(id)sender 
{ 
     self.customDatePickerView.hidden = YES; 
} 
- (IBAction)onCancelBtnClick:(id)sender 
{ 
     self.customDatePickerView.hidden = YES; 
} 

Hope esto le ayudará.

0

Puede resolver esto mediante la adición de este

[self.view endEditing:YES]; 

Añadir este donde desea despedir a un selector de fechas como he añadido esto en gesto de pulsar
En viewDidLoad añadió un Tapgesture

UITapGestureRecognizer *gesRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)]; // Declare the Gesture. 
    gesRecognizer.delegate = self; 
    [self.view addGestureRecognizer:gesRecognizer]; 

Después agregando esto en viewdidLoad Agregue este método para detectar el reconocedor de gestos

- (void)handleTap:(UITapGestureRecognizer *)gestureRecognizer{ 
    NSLog(@"Tapped"); 
    [self.view endEditing:YES]; 
} 
Cuestiones relacionadas