2012-07-12 57 views
0

我正在實現一個表視圖,其中對於一個特定的表視圖單元格,有一個文本字段的第一個響應者需要成爲UIDatePicker。我已經能夠實現它的大部分,但由於某種原因,這個視圖看起來並不完全正確。我一直在這個問題上停留了一段時間,我一直在尋找這個答案來尋求幫助。UIDatePickerView作爲UITextField的FirstResponder缺失月組件

UIDatepicker in UItextfield in UItableView

截至目前,我有數據選擇器出現和消失得當,文本字段委託工作正常,並且文本字段可以更新。我的問題是,由於某些原因,日期選取器的Month組件缺失(我有一張照片,但由於我的代表少於10個,我無法發佈)。它看起來像一個典型的UIDatePicker,但具有幾個月的第一個組件是完全空的,無法滾動。日間和年份組件正常運行。

這是我創建的選擇器視圖

cell = [tableView dequeueReusableCellWithIdentifier:InfoIdentifier]; 
    UILabel *textLabel = (UILabel *)[cell viewWithTag:kInfoLabelTag]; 
    UITextFieldWithIndex *cellText = (UITextFieldWithIndex *)[cell viewWithTag:kInfoTextboxTag]; 
    cellText.indexPath = indexPath; 

    textLabel.text = @"Birthday"; 

    UIDatePicker *datePicker = [[UIDatePicker alloc] init]; 
    datePicker.datePickerMode = UIDatePickerModeDate; 
    [datePicker addTarget:self action:@selector(datePickerValueChanged:) forControlEvents:UIControlEventValueChanged]; 
    datePicker.tag = indexPath.row; 

    cellText.inputView = datePicker; 

這裏是回調方法

-(void)datePickerValueChanged:(id)sender { 
NSLog(@"Date Changing"); 
currentTextField.text = @"new date"; 
} 

辭職第一響應者的作品,如果我打印日期,月份出現,所以唯一的問題是月份標籤丟失。

我使用Storyboard創建了這個項目,我也在這個項目中使用核心日期。但是,該視圖控制器的核心數據部分尚未實現。

任何想法?

回答

0

所以在查看我的代碼後,我發現問題是我爲UIPickerView創建的類別。

在另一個文件中,我通過使用類別來覆蓋UIPickerView的drawrect:方法創建了自定義選取器視圖。在重寫的方法中,我實際上將一些視圖設置爲隱藏於UIPickerView中。儘管該類別僅在其他文件中導入,但類別覆蓋方法已用於UIDatePickerView,因此將第一個組件設置爲隱藏。

我的快速解決方案是簡單地將UIPickerView的子類別用於其他文件中的特殊選擇器,從而將自定義drawRect覆蓋隔離在那裏。在我這樣做後,我的UIDatePicker顯示正確!