如何使用相同的 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?