【问题标题】:Display datepicker when tapping on UISearchController (Searchbar)点击 UISearchController(搜索栏)时显示日期选择器
【发布时间】:2016-06-20 10:36:33
【问题描述】:

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

@property (strong, nonatomic) UISearchController *searchController;

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

【问题讨论】:

    标签: ios objective-c uisearchbar


    【解决方案1】:

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

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

    希望对你有帮助

    【讨论】:

    • 完全不会显示日期选择器
    • @property (strong, nonatomic) UISearchController *searchController;
    • 您需要在以编程方式创建搜索栏后设置此行
    • 请使用您为以编程方式添加搜索栏而编写的代码编辑您的问题
    • UISearchController(搜索栏)在 Storyboard 中不可用。需要以编程方式添加
    【解决方案2】:

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

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

    【讨论】:

    • - (BOOL)searchBarShouldBeginEditing:(UISearchBar*)searchBar { [self showDatePicker];返回否;如果没有 nothink 将显示。如果是,日期选择器和键盘都将显示 }
    • 选项 1:在 searchBarShouldBeginEditing 和 'showDatePicker' 中保持返回 YES [searchBar resignFirstResponder];选项 2:在 UISearchBar 上添加点击手势,同样写 @selector。在那个手势方法中,调用“showDatePicker”方法。在这种情况下,不要为 UISearchBar 设置委托。我认为这会奏效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-29
    • 2014-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多