我有两个文本域,fromdate和todate.how从同一个datepicker获取不同的日期.我尝试了一些东西,最终在日期更改时在两个文本字段中获得相同的日期.
-(IBAction)dateValueChanged:(id)sender { UIDatePicker *picker = (UIDatePicker *)sender; NSDate *dateSelected1 = [picker date]; NSDate *dateSelected2 = [picker date]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"dd-MM-yyyy"]; self.fromTextField.text = [dateFormatter stringFromDate:dateSelected1]; self.toTextField.text = [dateFormatter stringFromDate:dateSelected2]; }
解决方法
你可以为TextFields textFieldDidBeginEditing:Method实现UITextFieldDelegate协议,同时为每个TextField设置tag属性,以便它们易于识别……
然后,当调用textFieldDidBeginEditing:时,您可以读取已开始编辑的文本字段的标记并将其设置为全局值,以便您可以找出日期选择器应更改的文本字段.示例:
- (void)textFieldDidBeginEditing:(UITextField *)textField { someGlobalNSInteger = textField.tag; //the current text field tag is Now globally set } -(IBAction)dateValueChanged:(id)sender { UIDatePicker *picker = (UIDatePicker *)sender; NSDate *dateSelected1 = [picker date]; //NSDate *dateSelected1 = [picker date]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"dd-MM-yyyy"]; //self.fromTextField.text = [dateFormatter stringFromDate:dateSelected1]; //self.toTextField.text = [dateFormatter stringFromDate:dateSelected2]; UITextField *activeTextField = (UITextField*)[self viewWithTag:someGlobalNSInteger]; //gets text field what is currently being edited [activeTextField setText:[dateFormatter stringFromDate:dateSelected1]]; }
但是,如果您不允许文本字段可编辑(因此无法启动键盘),您可能需要一些其他方法来确定textField应该获取更新日期,但我会留给您.
希望能帮助到你