2016-06-20 1 views
1

내가 inputView로 날짜 선택기를 설정해야 할 SearchbartextField을 두드리고 있지만, UISearchController (검색 창)를 탭하면 텍스트 필드에 대한표시 날짜 선택기 내가 프로그래밍 <code>UISearchController</code>을 사용하고

@property (strong, nonatomic) UISearchController *searchController; 

참고 : iPhone display date picker on UITextField touch
그러나 검색 창 텍스트 필드에 액세스 할 수 없습니다. 도와주세요. UISearchBar

답변

1

다음 코드를 사용하여 검색 텍스트 필드를 가져올 수 있습니다. 이 당신에게 도움이 될 것입니다 viewDidLoad

UITextField *searchBarTextField = [self.searchController.searchBar valueForKey:@"_searchField"]; 
[searchBarTextField setInputView:datePicker]; 

희망에 쓰기

+0

전혀 표시되지 않음 Datepicker는 –

+1

@property (강하고 비 구조) UISearchController * searchController를 표시합니다. –

+0

검색 막대를 프로그래밍 방식으로 만든 후에이 줄을 설정해야합니다. –

0

첫 번째 설정된 대표는 당신은 대리자 메서드를 사용할 수 있습니다 :

- (BOOL)searchBarShouldBeginEditing:(UISearchBar*)searchBar { 
    [self showDatePicker]; 
    return NO; 
} 

-(void) showDatePicker { 
    UIDatePicker *datePicker = [[UIDatePicker alloc]init]; 
    datePicker.datePickerMode = UIDatePickerModeDate; 
    [datePicker setDate:[NSDate date]]; 
    [datePicker addTarget:self action:@selector(showSelectedDate:) forControlEvents:UIControlEventValueChanged]; 
} 

- (void)showSelectedDate:(id)sender { 
    UIDatePicker *picker = (UIDatePicker*)self.date.inputView; 
    searchBar.text = [self formatDate:picker.date]; 
} 

당신이 원하는 형식으로 날짜를 표시 할 수있는 날짜 포맷을 사용할 수 있습니다.

+0

- (BOOL) searchBarShouldBeginEditing : (UISearchBar *) 검색 창 { [자기 showDatePicker] 반환 NO; NO nothink가 표시됩니다. 그렇다면 Datepicker와 Keyboard 모두 을 표시합니다. –

+0

옵션 1 : searchBarShouldBeginEditing 및 'showDatePicker'에 return yes를 유지하십시오. [searchBar resignFirstResponder]; 옵션 2 : UISearchBar에 탭 제스처를 추가하고 동일한 @selector를 씁니다. 그리고 그 제스처 메소드에서 'showDatePicker'메소드를 호출하십시오. 이 경우 UISearchBar에 대리자를 설정하지 마십시오. 나는 이것이 효과가있을 것이라고 생각한다. – Pushkraj