react español ejemplos bootstrap ios4 xcode4 uitextfield uidatepicker

ios4 - español - Mostrar datepicker al tocar en el campo de texto



datepicker range (5)

Hay una clase realmente útil que encontré: la publicación del blog está aquí: http://www.pietrorea.com/2012/07/how-to-hide-the-cursor-in-a-uitextfield/ pero básicamente utiliza la entrada. / inputAccessory también. El truco es que el UILabel, al menos por lo que estaba haciendo, era exactamente lo que necesitaba.

¿Cómo puedo mostrar un control de selección de fecha y hora al tocar un cuadro de texto?

Tengo una interfaz de usuario que tiene campos de texto de llegada y salida, y cuando un usuario hace clic en el cuadro de texto de llegada, debe mostrar un control de selección de fecha y hora en lugar de un teclado y lo mismo con el cuadro de texto de salida.


Muy simple, en ViewController.h pone el UITextFieldDelegate después en viewDidLoad .

txtFecha.delegate = self; datePicker = [[UIDatePicker alloc]init]; [datePicker setDatePickerMode:UIDatePickerModeDate]; self.txtFecha.inputView = datePicker;


abrir selector de fecha al hacer clic en textField swift 3.0 agregar UITextFieldDelegate y establecer delegate en ViewDidload () tfDate.delegate = self

//MARK:- TextField Delegate //MARK:- func textFieldShouldReturn(_ textField: UITextField) -> Bool { textField.resignFirstResponder() return true } //MARK:- DatePicker //MARK:- func textFieldDidBeginEditing(_ textField: UITextField) { self.callDatePicker(textField: tfDate) } func callDatePicker(textField:UITextField){ let datePickerView : UIDatePicker = UIDatePicker() datePickerView.datePickerMode = UIDatePickerMode.date textField.inputView = datePickerView datePickerView.addTarget(self, action: #selector(MyViewController.handleDatePicker), for: .valueChanged) } var str:String = "" var str1:String = "" var strStartDate:Date! var strEndDate:Date! func handleDatePicker(sender: UIDatePicker) { let dateFormatter = DateFormatter() dateFormatter.dateFormat = "dd-MM-yyyy" print("Date :: /(dateFormatter.string(from: sender.date))") tfDate.text = dateFormatter.string(from: sender.date) }


En viewDidLoad of ViewController.m

- (void)viewDidLoad { [super viewDidLoad]; UIDatePicker *datePicker = [[UIDatePicker alloc]init]; [datePicker setDate:[NSDate date]]; datePicker.datePickerMode = UIDatePickerModeDate; [datePicker addTarget:self action:@selector(dateTextField:) forControlEvents:UIControlEventValueChanged]; [txtFieldBranchYear setInputView:datePicker]; }

Agregue un método en su ViewController

-(void) dateTextField:(id)sender { UIDatePicker *picker = (UIDatePicker*)txtFieldBranchYear.inputView; [picker setMaximumDate:[NSDate date]]; NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; NSDate *eventDate = picker.date; [dateFormat setDateFormat:@"dd/MM/yyyy"]; NSString *dateString = [dateFormat stringFromDate:eventDate]; txtFieldBranchYear.text = [NSString stringWithFormat:@"%@",dateString]; }

txtFieldBranchYear es una salida de UITextField


Puede usar las propiedades inputView e inputAccessoryView del campo de texto para esto. Cree el selector de fecha y configúrelo en las vistas de entrada de los dos campos de texto. También cree otra vista para el botón Done y como su vista de accesorios. Necesitará ese botón para cerrar la vista de entrada.

El botón Done debe estar conectado para funcionar, lo que básicamente hace esto:

if ( [textField1 isFirstResponder] ) { [textField1 resignFirstResponder]; } else if ( [textField2 isFirstResponder] ) { [textField2 resignFirstResponder]; }

Otra opción sería la subclase UITextField y anular inputView e inputAccessoryView . Este es el camino a seguir cuando hay muchos de ellos.

Ejemplo

@interface CustomKeyboardAppDelegate : NSObject <UIApplicationDelegate> { ... @property (nonatomic, retain) IBOutlet UIWindow *window; @property (nonatomic, retain) IBOutlet UITextField *textField; @property (nonatomic, retain) IBOutlet UIToolbar *accessoryView; @property (nonatomic, retain) IBOutlet UIDatePicker *customInput; - (IBAction)dateChanged:(id)sender; - (IBAction)doneEditing:(id)sender; @end

En el XIB, extraiga una UIToolbar y un UIDatePicker pero no los adjunte a la vista. Conecte los tomacorrientes apropiadamente. dateChanged: responde a los cambios en el selector de fecha y doneEditing: se doneEditing: cuando se Done clic en el botón Done en la barra de herramientas. Conéctelos también. Los métodos se implementan como se detalla a continuación.

@implementation CustomKeyboardAppDelegate @synthesize window=_window; @synthesize textField = _textField; @synthesize accessoryView = _accessoryView; @synthesize customInput = _customInput; - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.textField.inputView = self.customInput; self.textField.inputAccessoryView = self.accessoryView; ... } ... - (IBAction)dateChanged:(id)sender { UIDatePicker *picker = (UIDatePicker *)sender; self.textField.text = [NSString stringWithFormat:@"%@", picker.date]; } - (IBAction)doneEditing:(id)sender { [self.textField resignFirstResponder]; } @end

Los dos últimos métodos se hincharán a medida que más campos de texto dependan de este seleccionador.