IOS隐藏键盘

最近遇到二个键盘会自动弹出的问题:

1、UIWebView加载网页后,点击网页内的链接在UIWebView内进行跳转时,键盘自动弹起;

2、调用选择照片时,iPod上选择照片后也会自动弹出键盘,比如从图库进到具体某个文件夹内,或者再返回图库,直接点中照片然后编辑的时候,都会自动弹出;

 

问题一是这样处理的

- (void)webViewDidStartLoad:(UIWebView*)webView{    [activityIndicatorView_ startAnimating];        // update by zhangyi    [[[UIApplication sharedApplication] keyWindow] endEditing:YES];    [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];}

- (void)webViewDidFinishLoad:(UIWebView*)webView{    [activityIndicatorView_ stopAnimating];        [[[UIApplication sharedApplication] keyWindow] endEditing:YES];    [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];}

- (void)webView:(UIWebView*)webView didFailLoadWithError:(NSError*)error{    [activityIndicatorView_ stopAnimating];        UIAlertView *alterview = [[UIAlertView alloc] initWithTitle:@"" message:[error localizedDescription]  delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil];    [alterview show];    [alterview release];}

网页开始加载或加载结束时关闭键盘并发送关闭键盘的事件,如果webViewDidFinishLoad()不被调用是因为uiwebview对象需要设置delegate为self。UIWebView的透明设置,只需要增加二个属性

webView_.opaque = NO;webView_.backgroundColor = [UIColor clearColor];

 

第二个问题的处理方案是,在导航切换的时候隐藏键盘并发送关闭键盘的事件

-(void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{    viewController.contentSizeForViewInPopover = navigationController.topViewController.view.frame.size;    [self HiddenStatusBarForIOS7];        // update by zhangyi    [[[UIApplication sharedApplication] keyWindow] endEditing:YES];} // update by zhangyi-(void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated{    [[[UIApplication sharedApplication] keyWindow] endEditing:YES];        [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];}

 

因为接触ios也不算特别多,暂时就使用了上述的方法来处理了。

 

 

参考:

How to make a transparent UIWebView

Add an activity indicator on a uiwebview

时间: 2024-08-11 22:38:24

IOS隐藏键盘的相关文章

IOS 隐藏键盘。

在View的UITextField中经常需要输入完文字后隐藏软键盘,要实现着一点要让View的Controller实现UITextFieldDelegate代理,然后编写相应的代码. #import <UIKit/UIKit.h> @interface TestVeiwController : UIViewController<UITextFieldDelegate> { IBOutlet UITextField *txt; } @property (nonatomic,retai

iOS 隐藏键盘的几种常见方法

1.设置return key,然后为Did End On Exit事件添加响应方法,并在方法内添加代码:[self.textfieldName resignFirstResponder]. 2.将背景view设置为UIControl类,然后为Touch Down事件添加响应方法,并在方法内添加代码:[self.textfieldName resignFirstResponder]. 3.重载- (void)touchesBegan:(NSSet<UITouch *> *)touches wit

iOS开发隐藏键盘方法总结

iOS开发里键盘是经常需要打交道的地方,下面为大家带来我整理总结的几种隐藏键盘的方法. 一.隐藏自身软键盘 当对于有多个UITextField控件都想通过点击“Return”来隐藏自身软键盘的情况,这时的最好办法是使用Did End on Exit事件.在点击软键盘右下角的“Return”按钮后,会触发该事件.该事件有一个sender参数表示当前文本框,这样便可以编写一个通用的事件处理方法(.m文件). - (IBAction)TextField_DidEndOnExit:(id)sender 

js控制ios端的input/textarea元素失去焦点时隐藏键盘

同事在测试产品时发现这样一个:"某些页面击完input框,在点空白处时,iOS设备的键盘不能隐藏并且焦点也不会失去" 带着这个问题我进行了测试,发现在安卓的设备上并没有这种问题出现. 于是写js进行测试给document添加一个click事件,发现了问题的原因: 安卓是可以触发click事件的,而iPhone不会触发. 也就是说在iOS设备下你点击空白的document处input并不能失去焦点. 解决办法: 既然click不能触发iPhone的事件,那就需要找触屏事件来触发一次: o

IOS中键盘自动隐藏

前言 很多时候当我们在一个文本框中输入信息后,按了确认或者返回键需要隐藏键盘,或者在其他空白区域点击屏幕后也需要隐藏屏幕. 这时肯定就需要让相应的控件响应Tap事件(点击事件),这样我们才能处理. 实现隐藏的两种方法 在IOS中有一个概念叫First Responder,意指第一响应者,也就是当前屏幕上,处于焦点状态的控件,它是第一响应者,我们在界面的触摸的各种手势都是由这个控件接收的.那么很好理解,当用户点击一个输入框之后,弹出输入键盘,此时这个文本输入框便是第一响应者,那现在要隐藏键盘,其实

[爱上Swift] day10:IOS 点击空白处隐藏键盘的几种方法

IOS7 点击空白处隐藏键盘的几种方法 IOS开发中经常要用到输入框,默认情况下点击输入框就会弹出键盘,但是必须要实现输入框return的委托方法才能取消键盘的显示,对于用户体验来说很不友好,我们可以实现点击键盘以外的空白区域来将键盘隐藏,以下我总结出了几种隐藏键盘的方法: 首先说明两种可以让键盘隐藏的Method: 1.[view endEditing:YES]  这个方法可以让整个view取消第一响应者,从而让所有控件的键盘隐藏. 2.[textFiled resignFirstRespon

IOS开发隐藏键盘的4种方法

IOS开发隐藏键盘的4种方法 开发的app中常会用到键盘输入完成后隐藏键盘的情况.在此总结了4种方法来实现我们的目的. 方法一--delegate方式 第一种隐藏键盘的方法,称为delegate三步法: 1. 遵循(委托/代理); 2. 调用; 3. 关联头文件(ViewController.h)中遵循代理 . 代码如下: #import <UIKit/UIKit.h> @interface ViewController : UIViewController<UITextFieldDel

UITextView 实现 placeholder 及隐藏键盘 ios

实现 placeholder   详见: http://code4app.com/ios/CBTextView/523965516803fa4e61000001 自定义一个CBTextView.h  (也可以从上面网址下载,然后直接看后面的调用即可) #import <UIKit/UIKit.h> @interface CBTextView : UIView { UIColor *defaultTextColor; NSString *prevText; } @property (strong

iOS开发几种隐藏键盘方法

摘要:iOS开发里键盘是经常需要打交道的地方,下面为大家带来几种隐藏键盘的方法. 一.隐藏自身软键盘 当对于有多个UITextField控件都想通过点击"Return"来隐藏自身软键盘的情况,这时的最好办法是使用Did End on Exit事件.在点击软键盘右下角的"Return"按钮后,会触发该事件. 该事件有一个sender参数表示当前文本框,这样便可以编写一个通用的事件处理方法(.m文件). 1 - (IBAction)TextField_DidEndOnE