2016-06-20 3 views
1

Я использую UISearchController программно, в то время, нажав на SearchbartextField Я хочу, чтобы установить Date Picker в inputViewДисплей DatePicker при касании на UISearchController (SearchBar)

@property (strong, nonatomic) UISearchController *searchController; 

Список литературы для текстового поля: iPhone display date picker on UITextField touch
Но не удалось получить доступ к текстовому полю панели поиска. Пожалуйста помоги.

ответ

1

Вы можете получить текст поиска по тексту, используя следующий код. Записайте его в viewDidLoad

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

Надеется, что это поможет вам

+0

Совсем нет Datepicker будет отображать –

+1

@property (сильный, неатомный) UISearchController * searchController; –

+0

Вам нужно установить эту строку после того, как вы создали программу поиска программно –

0

Первый набор делегат UISearchBar, то вы можете использовать следующий метод делегата:

- (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 *) SearchBar { [само showDatePicker]; return NO; Если NO nohink будет отображаться. Если YES Datepicker и Keyboard оба будут отображаться } –

+0

Вариант 1: Сохранить возврат ДА в searchBarShouldBeginEditing и в 'showDatePicker' напишите [searchBar resignFirstResponder]; Вариант 2: Добавить жест нажатия на UISearchBar, напишите @selector для него. И в этом методе жестов вызовите метод showDatePicker. В этом случае не устанавливайте делегат для UISearchBar. Я думаю, это сработает. – Pushkraj

Смежные вопросы