【问题标题】:Make UIDatePicker display only time when clicking UITextfield使 UIDatePicker 仅在单击 UITextfield 时显示
【发布时间】:2014-07-30 09:11:11
【问题描述】:

我想,当我点击我的 UITextfield 时,弹出一个 UIDatePicker,但我只希望它显示时间,而不是日期。到目前为止我做了什么

-(void)updateTextField:(id)sender
{
    UIDatePicker *picker = (UIDatePicker*)self.myTextField.inputView;
    self.myTextField.text = [NSString stringWithFormat:@"%@",picker.date];
}
- (void)viewDidLoad
{
    UIDatePicker *datePicker = [[UIDatePicker alloc]init];
    [datePicker setDate:[NSDate date]];
    [datePicker addTarget:self action:@selector(updateTextField:) forControlEvents:UIControlEventValueChanged];
    [self.myTextField setInputView:datePicker];
}

当我在模拟器中尝试这个时,出现了我不想要的东西: http://prntscr.com/47rddt

【问题讨论】:

    标签: objective-c xcode uitextfield uidatepicker


    【解决方案1】:

    要在文本字段中仅显示打印日期的时间,请使用日期格式化程序而不是打印整个日期对象。

    NSDateFormatter *timeFormatter = [[NSDateFormatter alloc] init];
    [timeFormatter setDateFormat:@"HH:mm"];
    self.myTextField.text = [timeFormatter stringFromDate:picker.date];
    

    【讨论】:

      【解决方案2】:

      有四种可用的日期选择器模式。您可以根据需要设置模式。

      1) UIDatePickerModeTime
      2) UIDatePickerModeDate
      3) UIDatePickerModeDateAndTime
      4) UIDatePickerModeCountDownTimer
      

      datePickerMode 设置为UIDatePickerModeTime

      - (void)viewDidLoad
      {
          UIDatePicker *datePicker = [[UIDatePicker alloc]init];
          [datePicker setDate:[NSDate date]];
          datePicker.datePickerMode = UIDatePickerModeTime;
          [datePicker addTarget:self action:@selector(updateTextField:) forControlEvents:UIControlEventValueChanged];
          [self.myTextField setInputView:datePicker];
      }
      

      更新

      在文本字段中设置时间时使用以下代码。

      -(void)updateTextField:(UIDatePicker *)dtPicker{
          NSDateFormatter *timeFormatter = [[NSDateFormatter alloc] init];
          [timeFormatter setDateFormat:@"HH:mm"];
          self.myTextField.text = [timeFormatter stringFromDate:dtPicker.date];
      }
      

      【讨论】:

      • 我已经编辑了我的代码,所以它现在看起来像这样: UIDatePicker *datePicker = [[UIDatePicker alloc]init]; [datePicker setDate:[NSDate 日期]]; datePicker.datePickerMode = UIDatePickerModeTime; [datePicker addTarget:self action:@selector(updateTextField:) forControlEvents:UIControlEventValueChanged]; [self.myTextField setInputView:datePicker]; [datePicker addTarget:self action:@selector(updateTextField:) forControlEvents:UIControlEventValueChanged];但是单击文本字段时它看起来仍然相同。
      猜你喜欢
      • 2012-08-19
      • 2023-04-09
      • 1970-01-01
      • 2012-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多