UIsearchBar should show result as soon as user enters charater in search bar without keyboard key storke

55 views Asked by At

this code i have wriiten it only show result in search bar after entering text in UIsearchControl on keybord key stroke sjows result.

i want that enter of each character in search which delegate should i used

can any one help me out please.

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    SEachResultContoller=1;
    NSString *searchBarText=searchContollerObj.searchBar.text;
    // searching by serial no
    if(SEachResultContoller==1)
    {
        if(searchBarText == nil)
        {
            resultArray=[reasourceDataToShowOnView mutableCopy];

        }
        else
        {
            NSMutableArray *resultArray1=[[ NSMutableArray alloc] init];
            for(NSDictionary *dict in reasourceDataToShowOnView)
            {
                if([dict [SERIALNO] containsString:searchBarText])
                {
                    [resultArray1 addObject:dict];

                }

                resultArray=resultArray1;
                DDLogDebug(@" search data %@",resultArray);

            }
        }

        [ _resousetableView reloadData];
    }
    // searchng by barcode
    else if (searchByBarCode==1)
    {
        if(searchBarText == nil)
        {
            resultArray=[reasourceDataToShowOnView mutableCopy];

        }
        else
        {
            NSMutableArray *resultArray1=[[ NSMutableArray alloc] init];
            for(NSDictionary *dict in reasourceDataToShowOnView)
            {
                if([dict [BARCODE] containsString:searchBarText])
                {
                    [resultArray1 addObject:dict];

                }

                resultArray=resultArray1;
                DDLogDebug(@" search data %@",resultArray);

            }
        }

        [ _resousetableView reloadData];
    }



}



- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    SEachResultContoller=1;
    NSString *searchBarText=searchContollerObj.searchBar.text;
    // searching by serial no
    if(SEachResultContoller==1)
    {
        if(searchBarText == nil)
        {
            resultArray=[reasourceDataToShowOnView mutableCopy];

        }
        else
        {
            NSMutableArray *resultArray1=[[ NSMutableArray alloc] init];
            for(NSDictionary *dict in reasourceDataToShowOnView)
            {
                if([dict [SERIALNO] containsString:searchBarText])
                {
                    [resultArray1 addObject:dict];

                }

                resultArray=resultArray1;
                DDLogDebug(@" search data %@",resultArray);

            }
        }

        [ _resousetableView reloadData];
    }
    // searchng by barcode
    else if (searchByBarCode==1)
    {
        if(searchBarText == nil)
        {
            resultArray=[reasourceDataToShowOnView mutableCopy];

        }
        else
        {
            NSMutableArray *resultArray1=[[ NSMutableArray alloc] init];
            for(NSDictionary *dict in reasourceDataToShowOnView)
            {
                if([dict [BARCODE] containsString:searchBarText])
                {
                    [resultArray1 addObject:dict];

                }

                resultArray=resultArray1;
                DDLogDebug(@" search data %@",resultArray);

            }
        }

        [ _resousetableView reloadData];
    }



}

//this for to serch result after pressing enter btn

-

(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText


 SEachResultContoller=1;
    NSString *searchBarText=searchBar.text;
    // searching by serial no
    if(SEachResultContoller==1)
    {
        if(searchBarText == nil)
        {
            resultArray=[reasourceDataToShowOnView mutableCopy];

        }
        else
        {
            NSMutableArray *resultArray1=[[ NSMutableArray alloc] init];
            for(NSDictionary *dict in reasourceDataToShowOnView)
            {
                if([dict [SERIALNO] containsString:searchBarText])
                {
                    [resultArray1 addObject:dict];

                }

                resultArray=resultArray1;
                DDLogDebug(@" search data %@",resultArray);

            }
        }

        [ _resousetableView reloadData];
    }
    // searchng by barcode
    else if (searchByBarCode==1)
    {
        if(searchBarText == nil)
        {
            resultArray=[reasourceDataToShowOnView mutableCopy];

        }
        else
        {
            NSMutableArray *resultArray1=[[ NSMutableArray alloc] init];
            for(NSDictionary *dict in reasourceDataToShowOnView)
            {
                if([dict [BARCODE] containsString:searchBarText])
                {
                    [resultArray1 addObject:dict];

                }

                resultArray=resultArray1;
                DDLogDebug(@" search data %@",resultArray);

            }
        }

        [ _resousetableView reloadData];
    }


}


- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    SEachResultContoller=1;
    NSString *searchBarText=searchContollerObj.searchBar.text;
    // searching by serial no
    if(SEachResultContoller==1)
    {
        if(searchBarText == nil)
        {
            resultArray=[reasourceDataToShowOnView mutableCopy];

        }
        else
        {
            NSMutableArray *resultArray1=[[ NSMutableArray alloc] init];
            for(NSDictionary *dict in reasourceDataToShowOnView)
            {
                if([dict [SERIALNO] containsString:searchBarText])
                {
                    [resultArray1 addObject:dict];

                }

                resultArray=resultArray1;
                DDLogDebug(@" search data %@",resultArray);

            }
        }

        [ _resousetableView reloadData];
    }
    // searchng by barcode
    else if (searchByBarCode==1)
    {
        if(searchBarText == nil)
        {
            resultArray=[reasourceDataToShowOnView mutableCopy];

        }
        else
        {
            NSMutableArray *resultArray1=[[ NSMutableArray alloc] init];
            for(NSDictionary *dict in reasourceDataToShowOnView)
            {
                if([dict [BARCODE] containsString:searchBarText])
                {
                    [resultArray1 addObject:dict];

                }

                resultArray=resultArray1;
                DDLogDebug(@" search data %@",resultArray);

            }
        }

        [ _resousetableView reloadData];
    }

which delegate method or how to implement it can any one help me out

1

There are 1 answers

0
Omer Waqas Khan On

This delegate method gets called first

-(BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
{
   // Your implementation

    return YES;
}

If you don't want to show the keyboard return NO.

Also try this tutorial Implement Search Bar