2013-03-04 72 views
0

我有一個應用於DatePicker的文本字段的UITableViewCell。我需要製作一個自定義按鈕來保存日期。但是每當我選擇任何UITableViewCell TextField時,都會出現按鈕。爲什麼是這樣?爲什麼這個按鈕出現在所有UITextField選項中?

我只是試圖「提交」它的文本字段,所以我可以保存它。

感謝

- (void)textFieldDidBeginEditing:(UITextField *)dateFieldText 
{  

    UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] 
            initWithTitle:@"Save Date" 
            style:UIBarButtonItemStyleDone 
            target:self 
            action:@selector(flipView)]; 
    self.navigationItem.rightBarButtonItem = doneButton; 
    UIDatePicker *datePicker = [[UIDatePicker alloc] init]; 
    datePicker.datePickerMode = UIDatePickerModeDateAndTime; 
    [datePicker addTarget:self action:@selector(datePickerValueChanged:) forControlEvents:UIControlEventValueChanged]; 
    [self.dateFieldText setInputView:datePicker]; 


} 

更新

使用的if else塊解決我的問題。

- (void)textFieldDidBeginEditing:(UITextField *)sender 
{ 
    sender.delegate = self; 
     if([sender isEqual:dateFieldText]) 
     { 
      UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] 
              initWithTitle:@"Save" 
              style:UIBarButtonItemStyleDone 
              target:self 
              action:@selector(saveDate)]; 
      self.navigationItem.rightBarButtonItem = doneButton; 
      UIDatePicker *datePicker = [[UIDatePicker alloc] init]; 
      datePicker.datePickerMode = UIDatePickerModeDateAndTime; 
      [datePicker addTarget:self action:@selector(datePickerValueChanged:) forControlEvents:UIControlEventValueChanged]; 
      [self.dateFieldText setInputView:datePicker]; 
     } 
     else{ 
      UIBarButtonItem *submitButton = [[UIBarButtonItem alloc] 
              initWithTitle:@"Done" 
              style:UIBarButtonItemStyleDone 
              target:self 
              action:@selector(submitList)]; 
      self.navigationItem.rightBarButtonItem = submitButton; 
     } 
    } 

感謝您的幫助。

+0

因爲該方法是「textFieldDidBeginEditing:」。您已將自己作爲所有單元格文本字段的代表。這是它添加按鈕,當你開始在文本字段中輸入 – 2013-03-04 01:34:09

回答

-1
- (void)textFieldDidBeginEditing:(UITextField *)sender 
{ 
    sender.delegate = self; 
     if([sender isEqual:dateFieldText]) 
     { 
      UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] 
              initWithTitle:@"Save" 
              style:UIBarButtonItemStyleDone 
              target:self 
              action:@selector(saveDate)]; 
      self.navigationItem.rightBarButtonItem = doneButton; 
      UIDatePicker *datePicker = [[UIDatePicker alloc] init]; 
      datePicker.datePickerMode = UIDatePickerModeDateAndTime; 
      [datePicker addTarget:self action:@selector(datePickerValueChanged:) forControlEvents:UIControlEventValueChanged]; 
      [self.dateFieldText setInputView:datePicker]; 
     } 
     else{ 
      UIBarButtonItem *submitButton = [[UIBarButtonItem alloc] 
              initWithTitle:@"Done" 
              style:UIBarButtonItemStyleDone 
              target:self 
              action:@selector(submitList)]; 
      self.navigationItem.rightBarButtonItem = submitButton; 
     } 
    } 
0

您是否重複使用表格視圖單元格?您可以考慮爲日期字段創建一個新單元格,併爲其他單元格指定一個不同的重用標識符。

+0

不,我不是。但是,這不是dateFieldText的用途嗎? – STANGMMX 2013-03-04 01:32:21

0

您應該將dataPicker設置爲預期的TextField,也就是說,您應該添加if條件來僅將datePicker添加到必填字段中,而不是添加到所有字段中。

相關問題