点击 UISearchController(搜索栏)时显示日期选择器

Display datepicker when tapping on UISearchController (Searchbar)

我正在以编程方式使用 UISearchController,点击 Searchbar textField 我想将 日期选择器设置为 inputView

@property (strong, nonatomic) UISearchController *searchController;

文本字段参考:iPhone display date picker on UITextField touch
但无法访问搜索栏文本字段。请帮忙。

首先设置 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];
}

您可以使用任何日期格式化程序以所需格式显示日期。

您可以使用以下代码获取搜索文本字段。写在viewDidLoad

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

希望对您有所帮助