手势隐藏软键盘&设立UISearchBar

手势隐藏软键盘&设置UISearchBar

一、点击手势隐藏软键盘

- (void)viewDidLoad

{

    UITapGestureRecognizer *tapGestureRecognizer =           

         [[UITapGestureRecognizer allocinitWithTarget:self action:@selector(hiddenKeyboard:)];

    tapGestureRecognizer.numberOfTapsRequired = 1;

    tapGestureRecognizer.delegate = self;

    [self.myTableView addGestureRecognizer:tapGestureRecognizer];


}




#pragma mark -除了cell did selected点击背景隐藏键盘,

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {

    NSLog(@"%@", [touch.view class]);

    if ([@"UITableViewCellContentView" isEqualToString:NSStringFromClass([touch.viewclass])]) {

        return NO;

    }

    return YES;

}



二、设置UISearchBar

#pragma mark- 设置UISearchBar

-(void)setSearchBarAttribute {

    self.searchBar.frame = CGRectMake(0023844);

    [self.searchBarsetPlaceholder:NSLocalizedStringWithInternational(@"trip_custCenter_newPayment_01001",@"请输入银行名称")];

    // 搜索框样式

    [self.searchBar setBarStyle:UIBarStyleDefault];

    // 搜索框的颜色,当设置此属性时,barStyle将失效

    [self.searchBar setTintColor:[UIColor blackColor]];

    // 设置是否透明

    [self.searchBar setTranslucent:YES];

    // 设置搜索框中文本框的文本偏移量

    //[self.searchBar setSearchTextPositionAdjustment:UIOffsetMake(30, 0)];

    // 设置键盘样式

    //[self.searchBar setKeyboardType:UIKeyboardTypeNumbersAndPunctuation];

    // 是否显示取消按钮

    [self.searchBar setShowsCancelButton:NO];

    [self.searchBar setShowsCancelButton:NO animated:YES];

    

    // 是否提供自动修正功能(这个方法一般都不用的)

    // 设置自动检查的类型

    [self.searchBar setSpellCheckingType:UITextSpellCheckingTypeYes];

    // 是否提供自动修正功能,一般设置为UITextAutocorrectionTypeDefault

    [self.searchBar setAutocorrectionType:UITextAutocorrectionTypeDefault];

    // 设置代理

    self.searchBar.delegate = self;

    //[self.searchBar sizeToFit];

    

}


#pragma mark - UISearchBarDelegate 协议

- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar{

    [self.searchBar setShowsCancelButton:NO animated:YES];

    // [self.navigationController setNavigationBarHidden:YES animated:YES];

    

    return YES;

    

}


// 取消按钮被按下时,执行的方法

- (void)searchBarCancelButtonClicked:(UISearchBar *)bar{

    [self.searchBar resignFirstResponder];

    [self.searchBar setShowsCancelButton:NO animated:YES];

    

    self.searchBar.text = @"";

    [self selectFlightInfoBySearchText:bar.text];

  

}


// 键盘中,搜索按钮被按下,执行的方法

- (void)searchBarSearchButtonClicked:(UISearchBar *)bar{

    

    [self.searchBar resignFirstResponder];

    NSString *searchText = bar.text;

    [self selectFlightInfoBySearchText:searchText];

    // [self.navigationController setNavigationBarHidden:NO animated:YES];

    

}


// 当搜索内容变化时,执行该方法

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText;{

    

    [self selectFlightInfoBySearchText:searchText];

    

}



#pragma mark- 模糊查询

-(void)selectFlightInfoBySearchText:(NSString *)searchText{

    

    NSMutableArray * resultArr = [[NSMutableArray allocinit];

    if (searchText.length > 0) {

        for ( PayCardObject *payCard in self.dataArray) {

            NSRange searchResult=[payCard.subPayGateName rangeOfString:searchText options:NSCaseInsensitiveSearch];

            if (searchResult.length>0) {

                [resultArr addObject:payCard];

            }

        }

        [tempDataArr removeAllObjects];

        [tempDataArr addObjectsFromArray:resultArr];

    }else{

        [tempDataArr removeAllObjects];

        [tempDataArr addObjectsFromArray:self.dataArray];

    }

    [self.myTableView reloadData];

    

}