[objective-c]为两个向文本框使用相同的 UIDatePicker

发布时间: 2017/3/27 4:10:17
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有两个向文本框,fromdate 和 todate.how 来得到不同的日期从同一 datepicker.i 尝试,最终在两向文本框中获取同一日期,当更改的日期。

-(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];
}

解决方法 1:

您可以实现 UITextFieldDelegate Protocol的两个你向文本框 textFieldDidBeginEditing: 法和设置 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]];

}

但是如果你不允许将可编辑 (所以它不能使键盘) 的文本字段,您可能需要一些其他方式搞什么文本字段应该得到更新的日期,我会留给你。

希望它能帮助

赞助商