【问题标题】:Make a date picker appear when a user taps a text field当用户点击文本字段时显示日期选择器
【发布时间】:2013-08-05 02:02:29
【问题描述】:

我试图关注这篇帖子Display datepicker on tapping on textfield,当我到达“在 XIB 中,拉出 UIToolbar 和 UIDatePicker 但不将其附加到视图”的地步时,我迷路了。我正在使用情节提要,而他正在使用 xib。那是问题吗? xib 对我来说不是一个选择。那么有没有办法将日期选择器拖出,但不附加到视图?

【问题讨论】:

    标签: iphone objective-c datepicker


    【解决方案1】:

    情节提要的不同之处在于您将为每个视图使用一个 XIB 文件(也称为 NIB)。 但是您应该能够按照任何说明进行操作。

    在 XIB 中,拉出一个 UIToolbar 和一个 UIDatePicker 但不要附加 它到视图。

    我相信他的意思是不要像使用按钮那样连接到 ViewController(例如 IBAction)

    由于您在点击文本字段时显示,因此您必须以编程方式进行。

    你真的不需要将它添加到你的视图中。

    【讨论】:

    • 我尝试在没有故事板的情况下执行此操作进行测试,结果只是拖出未附加到视图。
    • 是你想要的
    • 对不起,它没有回答我的问题
    • 只需从您的视图中删除选择器,您无需将其拖到情节提要中,您可以通过代码创建一个实例,然后使用代码将其全部显示
    【解决方案2】:

    您可以创建一个视图控制器,它的底部有一个日期选择器,顶部有一个关闭按钮。 点击文本字段时,您可以模态显示该视图控制器。

    为视图控制器设置委托方法: closeButtonClicked: 和 dateSelected: , 并在主控制器中实现这些委托方法。

    此外,您可以通过添加具有特定 alpha 的 datePicker 的 viewcontroller 背景颜色来“阻止”屏幕以获得良好的效果。

    我发现这是最简单的方法。不需要笔尖

    【讨论】:

      【解决方案3】:

      可能对你有帮助..

      - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
              dateActionSheet = [[UIActionSheet alloc]initWithTitle:@"Select Your Date of Birth" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil  , nil];
                  dateActionSheet.actionSheetStyle = UIActionSheetStyleBlackOpaque;
      
                  UIDatePicker *datePicker = [[UIDatePicker alloc] init];
                  datePicker.datePickerMode = UIDatePickerModeDate;
                  [datePicker addTarget:self action:@selector(datePickerValueChangedd:) forControlEvents:UIControlEventValueChanged ];
                  NSDateFormatter *df = [[NSDateFormatter alloc] init];
                  df.dateStyle = NSDateFormatterMediumStyle;
      
                  [dateActionSheet addSubview:datePicker];
                  [dateActionSheet addSubview:self.datePickerView];
      
                  UIToolbar *tools=[[UIToolbar alloc]initWithFrame:CGRectMake(0, 0,320,40)];
                  tools.barStyle=UIBarStyleBlackOpaque;
                  [dateActionSheet addSubview:tools];
      
      
                  UIBarButtonItem *doneButton=[[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleBordered target:self action:@selector(btnActinDoneClicked)];
                  doneButton.imageInsets=UIEdgeInsetsMake(200, 6, 50, 25);
      
      
                  UIBarButtonItem *flexSpace= [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
      
                  NSArray *array = [[NSArray alloc]initWithObjects:flexSpace,flexSpace,doneButton,nil];
      
                  [tools setItems:array];
      
      
      
                  //picker title
                  UILabel *lblPickerTitle=[[UILabel alloc]initWithFrame:CGRectMake(60,8, 200, 25)];
                  lblPickerTitle.text=@"Select Date of Birth";
                  lblPickerTitle.backgroundColor=[UIColor clearColor];
                  lblPickerTitle.textColor=[UIColor whiteColor];
                  lblPickerTitle.textAlignment = NSTextAlignmentCenter;
                  lblPickerTitle.font=[UIFont boldSystemFontOfSize:15];
                  [tools addSubview:lblPickerTitle];
      
      
                  //cell.detailTextLabel.text = [self datePickerValueChangedd:datePicker];
      
                  [dateActionSheet showFromRect:CGRectMake(0,480, 320,215) inView:self.view animated:YES];
                  [dateActionSheet setBounds:CGRectMake(0,0, 320, 411)];
              }
      
          -(void)btnActinDoneClicked {
              [dateActionSheet dismissWithClickedButtonIndex:1 animated:YES];
              [dateActionSheet removeFromSuperview];
      
          }
      
          -(void)datePickerValueChangedd:(UIDatePicker*) datePicker
          { 
              Youytextfield.text = (NSString *)datePicker.date;
          }
      

      【讨论】:

        猜你喜欢
        • 2011-08-29
        • 2012-10-01
        • 1970-01-01
        • 2023-04-09
        • 1970-01-01
        • 1970-01-01
        • 2015-06-23
        • 1970-01-01
        • 2016-07-11
        相关资源
        最近更新 更多