我正在制作一个iPhone应用程序,我在其中使用UIDatePicker
并在动作表中显示所选时间。在动作表中,时间以10分钟的间隔显示。
textfield
时, Datepicker
值设置正确
如果我不滚动操作表,则直接点击选择按钮,然后文本字段设置当前时间( 11:56
),但我选择了行动表( 11:50
)时间。 (textfield
)显示的值不正确。
如何设置textfield
的值(11:50
)。给我一些解决方案。
答案 0 :(得分:1)
修改强> 让你的类在你的选择器中处理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;
答案 1 :(得分:1)
按下选择按钮后,只需在日期选择器中设置dateSelected ....
NSDate *date = datePicker.date;
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd/MM/yyyy"];
NSString *dateString = [formatter stringFromDate:date];
yourTxtField.text = dateString;
答案 2 :(得分:0)
我认为最简单的方法就是将带有完成按钮的工具栏附加到TextField,其中UIDatePicker作为其inputView。通过在TextViewDidBeginEditing中维护对它的引用来跟踪当前的TextField。然后在完成按钮中执行以下操作:
if (_currentTextField == _myTextFieldThatUsesADatePicker) {
self.myDateProperty = _myDatePicker.date;
}
答案 3 :(得分:0)
我不知道这种方式是错误的,但它为我工作
-(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分钟