点击 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];
希望对您有所帮助
我正在以编程方式使用 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];
希望对您有所帮助