首页 > 解决方案 > 在点击 UISearchBar 控件时,它会自动调用 UISeachBar 控制器的 shouldEndEditing Delegate

问题描述

在调用UISearchBarBegin Editing 时,在 popover 控制器出现之后 popover 消失并隐藏键盘。它在没有任何 ENTER 键的情况下调用 EndEditing 下面的代码显示了UISearchBarController的 ShouldBeginEditing 委托

示例代码:

-(BOOL)searchBarShouldBeginEditing:(UISearchBar*)searchBar

{

if([searchBar isEqual:_normalSearch_SearchBar])

{

        [[KeyboardHideShow getInstance] setScrollRectToThisFrame:[searchBar convertRect:searchBar.frame toView:self.scrollView]];



        if(!self->_normalSearchPopOverController)

        {

            [[KeyboardHideShow getInstance] setUp_With_ScrollView:nil];



            [self setTableViewController:[[UITableViewController alloc] initWithStyle:UITableViewStylePlain]];

            [self->_tableViewController.tableView setDelegate:self];

            [self->_tableViewController.tableView setDataSource:self];



            [self addTransparentView_For_NormalSearch_And_AdvancedSearch];

                //To add the transparent view



            [self setNormalSearchPopOverController:[[UIPopoverController alloc] initWithContentViewController:self->_tableViewController]];

            [self->_normalSearchPopOverController setDelegate:self];

            [self->_normalSearchPopOverController setPopoverContentSize:CGSizeMake(POPOVERWIDTH,350)];

            [self->_normalSearchPopOverController presentPopoverFromBarButtonItem:self->_searchBarButtonItem permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];



        return YES;

    }

}



return NO;

请在上面的示例中提出我的代码错误的地方,并随时询问有关代码的任何说明。代码可以在 Xcode v8 上正常工作,但不能在 Xcode 10 和 Xcode 11 上工作。

标签: objective-cipaduisearchbaruipopovercontrolleruipopover

解决方案


推荐阅读