2013-03-07 72 views
0

我遇到的问题是我不确定如何将touchupinside添加到保存日期按钮的下面的代码中。我只是试图启动UIDatePicker并将日期提交到文本字段,然后解雇它。将touchupinside添加到以编程方式创建的按钮并将NSDate提交到文本框

所以我不知道如何将这个以编程方式创建的按钮链接到datePicker方法。不仅如此,我还没有使用过UIDatePicker,所以把它读入文本框我有点模糊。文本字段是dateFieldText。

一旦用户点击保存日期,那么UIDatePicker应该被解雇。

感谢您的帮助。这个问题对我来说有点复杂。

 - (void)textFieldDidBeginEditing:(UITextField *)sender 
     { 
      sender.delegate = self; 
       if([sender isEqual:dateFieldText]) 
       { 
        UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] 
               initWithTitle:@"Save Date" 
               style:UIBarButtonItemStyleDone 
               target:self 
               action:@selector(datePicker)]; 

       self.navigationItem.rightBarButtonItem = doneButton; 

      } 
      else{ 
       UIBarButtonItem *submitButton = [[UIBarButtonItem alloc] 
               initWithTitle:@"Done" 
               style:UIBarButtonItemStyleDone 
               target:self 
               action:@selector(datePicker)]; 
       self.navigationItem.rightBarButtonItem = submitButton; 

      } 
     } 


    -(IBAction)datePicker 
    { 
     UIDatePicker *datePicker = [[UIDatePicker alloc] init]; 
     datePicker.datePickerMode = UIDatePickerModeDateAndTime; 
     [datePicker addTarget:self action:@selector(saveDate) forControlEvents:UIControlEventValueChanged]; 
     [self.dateFieldText setInputView:datePicker]; 
    } 

    // I haven't made the saveDate method yet... 

回答

1

你有几件事不正确地连线。您需要在创建文本字段的位置将日期选择器设置为文本字段的inputView,而不是在用户将焦点放在文本字段之前轻敲未添加的按钮。

你也不需要一个完成按钮和一个保存日期按钮。要么有一个完成按钮或有一个保存和取消按钮。

您还需要实施textFieldDidEndEditing委托方法以删除您添加的所有按钮。

您的saveDate方法将需要使用当前选择的日期更新文本字段的文本(在将日期转换为字符串后使用NSDateFormatter)。

完成/保存/取消按钮(无论您最终要做什么)的操作只需在文本框中调用resignFirstResponder即可。这将消除日期选择器。按钮操作可能还需要根据需要保存或恢复日期值。

+0

感谢您的指导。这有助于。 – STANGMMX 2013-03-07 02:51:10

相关问题