我正在制作一个我正在使用的 iPhone 应用程序,并在操作UIDatePicker
表中显示选定的时间。在操作表中,时间以 10 分钟间隔显示。
textfield
当我滚动时,值设置正确Datepicker
如果我 不滚动操作表,则直接单击选择按钮,然后文本字段设置当前时间(11:56
),但我在操作表(11:50
)中选择时间。( textfield
) 显示不正确的值。
如何设置textfield
' 值 ( 11:50
)。给我一些解决方案。
我正在制作一个我正在使用的 iPhone 应用程序,并在操作UIDatePicker
表中显示选定的时间。在操作表中,时间以 10 分钟间隔显示。
textfield
当我滚动时,值设置正确Datepicker
如果我 不滚动操作表,则直接单击选择按钮,然后文本字段设置当前时间(11:56
),但我在操作表(11:50
)中选择时间。( textfield
) 显示不正确的值。
如何设置textfield
' 值 ( 11:50
)。给我一些解决方案。
只需在按下选择按钮后从日期选择器中设置 dateSelected....
NSDate *date = datePicker.date;
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd/MM/yyyy"];
NSString *dateString = [formatter stringFromDate:date];
yourTxtField.text = dateString;
编辑 让你的班级在你的选择器中处理 UIControlEventValueChanged 事件。添加这一行 ViewDidLoad 方法或当您的操作表显示时:
[picker addTarget:self action:@selector(dateChanged:)
forControlEvents:UIControlEventValueChanged];
现在更改日期时将调用选择器
更新
- (void) dateChanged:(id)sender{
// handle date changes and set in textField
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSString *strdate = [dateFormatter stringFromDate:self.datePicker.date]; //provide your selected date here
self.dateTexField.text = strdate;
}
如果未调用上述方法,则表示日期未更改,因此请始终在 textField 中设置默认日期。
将日期转换为字符串对象
更新
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSString *strdate = [dateFormatter stringFromDate:self.datePicker.date]; //provide your selected date here
现在为 textField 设置值,如下所示:
self.dateTextField.text = strdate;
我认为最简单的方法是将带有完成按钮的工具栏附加到以 UIDatePicker 作为其 inputView 的 TextField 上。通过在 TextViewDidBeginEditing 中维护对它的引用来跟踪当前的 TextField。然后在完成按钮中执行以下操作:
if (_currentTextField == _myTextFieldThatUsesADatePicker) {
self.myDateProperty = _myDatePicker.date;
}
我不知道这种方式是否正确,但它对我有用
-(void)selectedTime{
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
// [outputFormatter setDateFormat:@"h:mm a"];
[outputFormatter setDateFormat:@"HH:mm:ss"];
selectedTime = [outputFormatter stringFromDate:datePicker.date];
NSArray *temp=[selectedTime componentsSeparatedByString:@":"];
NSLog(@"%@",temp);
NSInteger mins=[[temp objectAtIndex:1]integerValue];
//check your interval here
if (mins<=29) {
selectedTime=[NSString stringWithFormat:@"%@:%@:%@",[temp objectAtIndex:0],@"00",@"00"];
}else if (mins>=31 && mins<=59){
selectedTime=[NSString stringWithFormat:@"%@:%@:%@",[temp objectAtIndex:0],@"30",@"00"];
}else{
// selectedTime = [outputFormatter stringFromDate:datePicker.date];
}
if (self.delegate && [self.delegate respondsToSelector:@selector(SelectedValue:)]) {
[self.delegate SelectedValue:selectedTime];
}
[self.popupController dismiss];
}
我的间隔是30分钟