firstresponder 后,键盘不显示

问题:调用了firstresponder ,但键盘并没有显示,必须手动点击一下,才会显示键盘

分析:原入口进入是好的,自己新加了个window,从这个winodw的界面中点击进入就不显示了。

说明界面本身并没有问题,是自己新加的window导致了键盘弹不出

怀疑:

1、优先级

排除,因为如果是优先级的问题,点击触发也不会弹出

2、自己新建的窗口的界面中,没有释放掉firstResponder,导致UITextField获得不了

将自己窗口的界面中,所有界面元素在界面willdisappear的时候都显示调用一下resignFirstResponder,依然无效,排除

想不出别的原因了,google之,没找到好的解决办法,基本都是由于2,但看到了一些方法,如用

canbecomeFirstResponder来判断当前view能否获得firstResponder.

测试了下我的UITextField,果然返回no,为什么了?为什么这个view不能成为第一响应者,不应该啊!

https://developer.apple.com/library/ios/documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/event_delivery_responder_chain/event_delivery_responder_chain.html#//apple_ref/doc/uid/TP40009541-CH4-SW1

看了下响应链,意外发现:

Note: Make sure that your app has established its object graph before assigning an object to be the first responder. For example, you typically call the becomeFirstResponder method in an override of the viewDidAppear: method. If you try to assign the first responder in viewWillAppear:, your object graph is not yet established, so the becomeFirstResponder method returns NO.

也就是说,我们应当最好在viewDidAppear中设置第一响应者。

最终发觉,它不能成为第一响应者,还是由于入口window的问题。

原因:我新建了一个window,把这个界面push进来,但是我并没有把这个window设为keywindow,导致它在响应链的位置有变化,所以不能成为第一响应者。

解决:1、保存原来的keywindow   2、在这个新window显示时,把它设为keyWindow   3、在它消失时,将原来的keywindow设回,ok.

时间: 2024-12-28 12:23:32

firstresponder 后,键盘不显示的相关文章

IOS 键盘的显示与关闭,以及移动显示(UITextView处理完整版)

IOS 键盘的显示与关闭 在每一个IOS应用中,几乎不可避免的要进行文本输入操作,例如要求用户填写登陆注册信息,进行话题的评论回复,等等.用到的文本输入组件有UITextField,UITextView,对于这两个组件的相关属性和方法想必大家都很熟悉,但貌似对于键盘的显示或隐藏过程貌似常常不是很清楚,其实本人也是一知半解,所以趁此做简单的总结,基本上以下描述出自于官方的文档,并没有什么更改. 1.开启键盘面板 当用户触击某一个view时,系统会自动指定该view为第一响应对象(first res

Atom快速进入全屏后隐藏/恢复显示菜单栏

今天用ATOM进入全屏模式,然后偶尔琢磨这个Atom 1.3.2版本的软件的时候, 在菜单栏里面的View里面, 有一个Toggle Menu Bar的选项,好奇的我点击了下,瞬间,菜单栏就不见了.. 经过一番琢磨,终于想到了方法,其实就是通过键盘的快捷键啦. 注:虽然我用的是atom 1.3.2版本的软件,但是原理是一样的.工具/原料 Atom软件,键盘,鼠标,电脑 方法/步骤 首先,当然是打开ATOM软件啦,进入全屏怎么进?按下键盘上面的快捷键F11是最好的. Atom快速进入全屏后隐藏/恢

EditText获取和失去焦点,软键盘的关闭,和软键盘的显示和隐藏的监听

软键盘显示和隐藏的监听: 注: mReplayRelativeLayout是EditText的父布局 //监听软键盘是否显示或隐藏 mReplayRelativeLayout.getViewTreeObserver().addOnGlobalLayoutListener( new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { Rect r = new Rect(); mRe

android 软键盘的显示与隐藏问题的研究

在android中,常常会和输入法的软件键盘交互.在Manifest文件中,系统给activity的一个属性-windowSoftInputMode来控制输入法的显示方式. 该属性提供了Activity的window与软键盘的window交互的方式.这里的属性设置有双方面的影响: 1.软键盘的显示与隐藏.-当Activity界面成为用户的焦点时,或隐藏或显示. 2. 对Activty的主window窗体进行调整.或者将Activity的window窗体调小以便为软键盘腾出空间,或者当Activi

Can't find keyplane iOS模拟器键盘不显示解决办法

静下心来学技术,新一波的问题再度来袭 学习swift的时候做一个app,需要用到数字键盘,但是在调试了几次后数字键盘便出不来了,控制台中弹出这样一个错误 Can't find keyplane that supports type 4 for keyboard iPhone-PortraitChoco-NumberPad; using 2382260317_PortraitChoco_iPhone-Simple-Pad_Default,查资料好像是xcode的一个bug,苹果居然放任如此严重的一

模拟select控件&&显示单击的坐标&&用户按下键盘,显示keyCode

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

wdcp后台创建网站后,总是显示403界面

后台创建站点后后,域名已解析,但无法打开默认页面,创建网站后会有一个默认的index.html 存在于public_html下面的,我用FTP 查看是有的,但用域名却无法访问,总是显示403界面 经查看,发现端口管理下面的 80端口显示的是nginx.conf ,然后我将系统设置里面的web引擎修改为nginx后 可以了,不知道 这是不是bug.默认的环境是nginx+apache的 wdcp后台创建网站后,总是显示403界面,布布扣,bubuko.com

Ubuntu Kylin 14.04LTS 开机后卡在登陆界面,可以进入字符界面,或者登陆后鼠标不显示但是管用

2014年4月27日,距离中期检查还有七天,基本上什么也没做,特别着急,雨已经下了快一天了,中午用美团外卖定的黄焖排骨,MD,什么玩意,那么一点点就18块钱,一看就不值五块钱,发誓再也不吃,最重要的是订完两个半小时才送到,饿过劲了都 吐槽一下Ubuntu 的谷歌输入法,真是不符合国人习惯 刚刚整好这个毛病,有种致之死地而后生的狂喜 ubuntu今天上午关机去win7,买了个东西回来就没法开机了,开机后卡在登陆界面,鼠标不能动,好不容易鼠标能动了,也能输入密码了,结果进去之后又卡住了,不显示桌面,

安卓 SD卡写入文件后不能立即显示被写入的文件解决方法

每次通过输出流往SD卡写入文件,连接上电脑,用MTP的方式模拟一个移动磁盘,打开磁盘却没有这样一个文件,而通过adb的方式查看就有,造成这个现象的原因是,每次写入之后,MTP的数据库并没有更新,因为更新一次MTP数据库需要的带价比较大,所以只有在重启,挂载和用户手动发送Intent出发,故存入文件后需要手动发送Intent广播,出发一下MTP数据库的更新. /** * 出发扫描 mtp下的文件,在保存文件到 sd卡下后,不能显示,故这里触发一下扫描机制,让手机连上电脑后,就可以读出文件了 * @

ssh远程登录后的终端显示信息

在日常运维中,我们经常会使用中控机ssh信任跳转到其他机器上,但是不知道有没有运维朋友注意到ssh跳转成功后的终端显示的提示信息? 这些提示信息,是为了方便我们在第一时间知道ssh跳转到哪台目标机上,也是为了避免长期频繁跳转后由于大意造成的误入机器操作的风险,我们通常会在ssh跳转到目标机器后显示一些提示信息,如下: [[email protected] ~]# ssh -p22 192.168.1.15Last login: Fri Jul 15 13:26:53 2016 from 124.