如何使用相同的 UIDatePicker 分别在 2 UITextField 中获取日期和时间

Posted

技术标签:

【中文标题】如何使用相同的 UIDatePicker 分别在 2 UITextField 中获取日期和时间【英文标题】:How to use the same UIDatePicker to get Date and Time in 2 UITextField by separate 【发布时间】:2011-11-24 22:58:29 【问题描述】:

我在 iPad 应用程序中工作,并且我在一个 XIB 中有一个选择器,我想使用相同的 UIDataPicker 来通过将一个 UITextField 中的日期和不同 UITextField 中的时间分开来获取。

例子:

UItextField_1 > 在这里我只想获取日期 UItextField_2 > 这里我只想得到时间

UIDatePicker > 我想要这个选择器(只有一个)来获取两个值。

实现它的一些想法?

欢迎任何想法,非常感谢!

【问题讨论】:

【参考方案1】:

您可以在 viewDidLoad 方法中使用 UIControlEventValueChanged 设置事件监听器。

[datePicker addTarget:self action:@selector(action:forEvent:) forControlEvents:UIControlEventValueChanged];

然后在那个处理程序中你可以做这样的事情:

- (void)action:(id)sender forEvent:(UIEvent *)event 
    // Date
    dateTextField1.text = [NSDateFormatter localizedStringFromDate:[datePicker date] dateStyle:kCFDateFormatterShortStyle timeStyle:kCFDateFormatterNoStyle];

    // Time    
    dateTextField2.text = [NSDateFormatter localizedStringFromDate:[datePicker date] dateStyle:kCFDateFormatterNoStyle timeStyle:kCFDateFormatterShortStyle];

[注意:这是未经测试的代码。这只是为了让你知道该怎么做]

【讨论】:

很好的答案,这个例子很有用。非常感谢【参考方案2】:

您只需从 UIDataPicker 获取日期并使用 NSDateFormatter 将值分开

-(IBAction) endDate

//gets date only 01/01/2011
NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.dateStyle = kCFDateFormatterShortStyle;
NSLog(@"%@",[df stringFromDate:endByDatePicker.date]);

//gets time h:mm
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setDateFormat:@"h:mm"];
NSLog(@"%@",[outputFormatter stringFromDate:self.endByDatePicker.date]);


【讨论】:

以上是关于如何使用相同的 UIDatePicker 分别在 2 UITextField 中获取日期和时间的主要内容,如果未能解决你的问题,请参考以下文章

如何在同一个 Viewcontroller 上使用 UIPickerview 和 UIDatePicker?

如何使 UIDatePicker 出现在屏幕底部?

选择视图 0 时,UIDatePicker 将分钟设置为 1

保存来自 UIDatePicker 的选择

如何在 iOS 的 UIDatePicker 中阻止天数

如何在 iOS 的 UIDatePicker 中禁用以前的时间