微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – 为两个TextField使用相同的UIDatePicker

我有两个文本域,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应该获取更新日期,但我会留给您.

希望能帮助到你

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐