2013-03-07 67 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

相關問題