2014-12-12 3 views
1

UITableView에 UITextField가 있습니다. 나는 그것의 입력보기로 UIPickerView 또는 UIDatePicker를 가지고 노력하고있다. 두 옵션이 모두 나타나고 UIPickerView의 경우 올바른 데이터를로드하고 있습니다. 문제는 스크롤 할 수 없으며 사용자가이 옵션과 상호 작용할 수 없으며 다양한 옵션을 선택하고 스크롤 할 수 없다는 것입니다.UIPickerView 및 UIDatePicker가 상호 작용에 응답하지 않습니다.

Userinteraction이 yes로 설정되고 대리자가 올 바르고 모든 것이 제자리에 있습니다.

- (BOOL) textFieldShouldBeginEditing:(UITextField *)textField 
{ 
    UIDatePicker *datepicker = [[UIDatePicker alloc] initWithFrame:CGRectZero]; 
    [datepicker setDatePickerMode:UIDatePickerModeDate]; 

    textField.inputView = datepicker; 

    return YES; 
} 

답변

1

은 왜 설정이 방법의 inputView :

코드인가? viewDidLoad에서이 작업을 수행하십시오. 다음

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    UIDatePicker *datePicker = [[UIDatePicker alloc]init]; 
    [datePicker setDate:[NSDate date]]; 
    datePicker.datePickerMode = UIDatePickerModeDate; 
    [datePicker addTarget:self action:@selector(editTextField:) forControlEvents:UIControlEventValueChanged]; 
    [textField setInputView:datePicker]; 
} 

과 :

이 UITextField에 테이블보기에서
- (void)editTextField:(id)sender 
{ 
    UIDatePicker *picker = (UIDatePicker *)textField.inputView; 
    [picker setMaximumDate:[NSDate date]]; 
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    NSDate *eventDate = picker.date; 
    [dateFormat setDateFormat:@"dd/MM/yyyy"]; 

    NSString *dateString = [dateFormat stringFromDate:eventDate]; 
    textField.text = [NSString stringWithFormat:@"%@",dateString]; 
} 
+0

, 그것이이 가 textField의 사용자 초점 설정 특정 inputView 때마다 이해가되지 않는 구성이다 동적으로로드 된, 따라서 viewdidload 메서드에서 입력보기를 할당 할 수 없습니다. –

+0

동일합니다. 사용자 정의 셀 클래스가 있어야하며 init 메소드에 코드를 넣거나 'cellForRowAtIndexPath :'에 셀을 구성해야합니다. –

+0

당신의 접근 방식을 시도했지만 여전히 작동하지 않습니다. 년 필드가 올바르게 나타나지 않습니다. –