美文网首页
becomeFirstResponder调用键盘没唤起

becomeFirstResponder调用键盘没唤起

作者: malgee | 来源:发表于2022-03-14 17:09 被阅读0次

出现问题描述: 调用 becomeFirstResponder 键盘没有弹出, 但是手动点击textview可以弹出键盘

[textview becomeFirstResponder]

解决问题思路:
查看textview所在的window是否是 keyWindow, 找到 textview是在自定义控件内部的, 这个自定义控件又被放到lastwindow, 检查发现lastwindow并不是 keyWindow

lastwindow.isKeyWindow 返回的是NO

解决: 将 lastwindow 设置成 keyWindow, 再调用 [textview becomeFirstResponder] 键盘就响应了

[lastwindow makeKeyWindow]

UIWindow的常用方法:
让当前UIWindow变成keyWindow(主窗口)
- (void)makeKeyWindow;

让当前UIWindow变成keyWindow,并显示出来
- (void)makeKeyAndVisible; 

获取当前应用的所有的UIWindow 
[UIApplication sharedApplication].windows

 获取当前应用的主窗口
[UIApplication sharedApplication].keyWindow

获得某个UIView所在的UIWindow
view.window

相关文章

网友评论

      本文标题:becomeFirstResponder调用键盘没唤起

      本文链接:https://www.haomeiwen.com/subject/ljhsdrtx.html