手势隐藏软键盘&设置UISearchBar

一、点击手势隐藏软键盘

UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget: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(0, 0, 238, 44);

[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 alloc] init];

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];

}

时间: 2024-10-09 12:23:55

手势隐藏软键盘&设置UISearchBar的相关文章

隐藏软键盘随笔

1>软键盘的状态——隐藏或显示. 一:自动弹出软键盘 Timer timer=new Timer(); timer.schedule(new TimerTask() { public void run() { InputMethodManager inputMethodManager=(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); inputMethodManager.toggleSoftInput(0, 

IOS 隐藏软键盘的3种方法

IOS开发里软键盘是经常需要打交道的地方,下面为大家带来我整理总结的3种隐藏键盘的方法. 使用软键盘的 Done 键隐藏键盘 出发软键盘隐藏最常用的事件是文本框的 Did End on Exit,它在用户按软键盘中的 Done 键时发生.选中一个UITextField控件,点击鼠标右键弹出面板,鼠标左键按住 Did End on Exit 事件旁边的圆圈,然后拖曳到右侧 .h 文件中,命名为 CloseTheKeyBoard,在 m 文件中具体实现如下图所示(此处同时显示 .h 文件与 .m 文

Android -- 打开时隐藏软键盘

当activity中有edittext时,软键盘会自动弹出,有时希望隐藏软键盘(并保留edittext的focus,比如扫码)可以在activity onCreate时,使用以下代码来实现: this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

Android点击空白处,隐藏软键盘

在做登陆或者注册的时候,软键盘经常可能会挡住一些界面.我们需要在输入完成之后隐藏软键盘. 在我们点击空白处或者非EditText的地方来隐藏软键盘. public class HomeActivity extends Activity { ...... @Override public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { // 获得当前得到焦点的

完美解决点击空白处,隐藏软键盘

在做一对一聊天的时候,应该做成类似微信的那种处理方式,点击空白处以及非EditText处的时候可以隐藏软键盘. 网上搜的时候搜到一个靠谱的做法,链接如下:http://www.cnblogs.com/coding-way/archive/2012/07/10/2585511.html 代码如下: public class HomeActivity extends Activity { ...... @Override public boolean dispatchTouchEvent(Motio

Android 完美的隐藏软键盘方法

最近有这么一个需求:在点击EditText时弹出软键盘,然后在点击空白处或者其他控件的时候隐藏软键盘.这个需求在平板电脑上非常实用,因为屏幕大,用户不可能每次都点左下角去隐藏,并且点击空白处更容易. 刚开始从网上搜索,不是很理想,后来突然想到Android的事件分发机制,于是想到了实现方法: publicclassHomeActivityextendsActivity{     ......     @Override     publicboolean dispatchTouchEvent(M

[转]Android 完美的隐藏软键盘方法 点击编辑框外软键盘消失

最近有这么一个需求:在点击EditText时弹出软键盘,然后在点击空白处或者其他控件的时候隐藏软键盘.这个需求在平板电脑上非常实用,因为屏幕大,用户不可能每次都点左下角去隐藏,并且点击空白处更容易. 刚开始从网上搜索,不是很理想,后来突然想到Android的事件分发机制,于是想到了实现方法: public class HomeActivity extends Activity { ...... @Override public boolean dispatchTouchEvent(MotionE

Android-----完全隐藏软键盘

隐藏软键盘一直是我头痛的事情,没有找到一种真正能隐藏的方法.点击EditText的时候总是弹出软键盘.-----杯具 杯具(一): Java代码   InputMethodManager im =(InputMethodManager) mEdit .getContext() .getSystemService(Context.INPUT_METHOD_SERVICE); im.hideSoftInputFromWindow(SoftKeyTest.this.getCurrentFocus().

完美的隐藏软键盘方法

最近有这么一个需求:在点击EditText时弹出软键盘,然后在点击空白处或者其他控件的时候隐藏软键盘.这个需求在平板电脑上非常实用,因为屏幕大,用户不可能每次都点左下角去隐藏,并且点击空白处更容易. 刚开始从网上搜索,不是很理想,后来突然想到Android的事件分发机制,于是想到了实现方法: 1 public class HomeActivity extends Activity { 2 ...... 3 @Override 4 public boolean dispatchTouchEvent