调用移动端的软键盘,一般是和TextInput的操作绑定的。

当点击输入文本框进人输入状态的时候移动端会自动调用软键盘,当输入完毕,点击输入文本框的外部区域或关闭软键盘按钮可完成软键盘收回状态的操作。

通常情况下我们会根据输入文本框的焦点对软键盘执行弹出和收回状态的监听

如下列代码所示private var textInput:TextField;

textInput=new TextField();

textInput.type=TextFieldType.INPUT;

textInput.border=true;

textInput.multiline=true;

textInput.wordWrap=true;

textInput.width=200;

textInput.x=100;

textInput.y=200;

addChild(textInput);

textInput.addEventListener(FocusEvent.FOCUS_IN,onFocusIn);

textInput.addEventListener(FocusEvent.FOCUS_OUT,onFocusOut);

private function onFocusIn(event:FocusEvent):void

{

textInput.text="你的键盘打开了";

}

private function onFocusOut(event:FocusEvent):void

{

textInput.text="你的键盘消失了";

} 但这样操作貌似并不能完全满足我们的需求,因为以上方法只针对于当点击输入文本框获取焦点和点击输入文本框外部区域失去焦点的时候才会触发。而软键盘自身带有关闭按钮,此操作不会触发焦点事件,导致无法监听到软键盘的收回状态,所以FocusEvent的使用并不全面。

----------------------------------------------------------------------------------------------------

不过不用担心,下面的方案将会彻底解决这个问题

当移动端调用软键盘的时候,会导致当前可视窗口显示区域发生改变(软键盘弹出,区域变小,否则反之),我们通过侦听Event.RESIZE事件可以对当前可视窗口区域的Width和Height属性进行监听,通过判断Width和Height属性是否发生改变来判断当前软键盘的弹出和收回状态。

参考代码如下:package

{

import flash.display.Sprite;

import flash.display.StageScaleMode;

import flash.events.Event;

import flash.events.FocusEvent;

import flash.events.KeyboardEvent;

import flash.text.TextField;

import flash.text.TextFieldType;

import flash.ui.Keyboard;

public class TextInput extends Sprite

{

private var textInput:TextField;

private var sourceWidth:Number;

private var sourceHeight:Number;

public function TextInput()

{

//转换成h5项目后获取浏览器的宽度

//[IF-JS]sourceWidth = Laya.window.innerWidth;

//转换成h5项目后获取浏览器的高度

//[IF-JS]sourceHeight = Laya.window.innerHeight;

if(stage)

{

init();

}

else

{

this.addEventListener(Event.ADDED_TO_STAGE,init);

}

}

private function init(e:Event=null):void

{

textInput=new TextField();

textInput.type=TextFieldType.INPUT;

textInput.border=true;

textInput.multiline=true;

textInput.wordWrap=true;

textInput.width=200;

textInput.x=100;

textInput.y=200;

addChild(textInput);

stage.scaleMode=StageScaleMode.NO_SCALE;

//给舞台侦听RESIZE事件,当舞台状态发生改变时触发

stage.addEventListener(Event.RESIZE,onStageChange);

}

protected function onStageChange(event:Event):void

{

var desWidth:Number;

var desHeight:Number;

//获取窗口显示区的宽度。

__JS__('desWidth=window.innerWidth');

//获取窗口显示区的高度。

__JS__('desHeight=window.innerHeight');

if(desHeight!=sourceHeight)

{

textInput.text="OPEN";

}

else

{

textInput.text="CLOSE";

}

}

}

}提示:如果以上代码有看不懂的地方,请大家先学习宏编译的用法

链接:http://layaflash.ldc.layabox.c ... d%3D9

html5自动收回键盘,如何监听移动端软键盘的弹出和收回?相关推荐

  1. 安卓之软键盘监听与切换软键盘状态和重新获取EditText焦点

    最近在工作中的时候遇到了关于使用ScrollView作为外层点击内部EditText弹出软键盘滑动页面的问题,百度了好久各种教程,但是对于我的页面来说没有一个有用的,自己花了1天时间终于搞定了,今天在 ...

  2. android 键盘弹出 监听,奇技淫巧之-Android监听键盘弹出与隐藏事件

    CaptainAndroid.png 相信看到这个标题,大家都会潜意识觉得:Activity中没有可以复写的方法么?或者说,没有什么listener可以让我们使用么? 抱歉,真的没有,我们潜意识都是以 ...

  3. Python 技术篇-pyhook暂停键盘鼠标监听事件,停止键盘鼠标监听事件且不关闭程序

    很多时候只是要暂停一下或只想关闭监听,并不想把程序关闭. 但是网上搜了半天,没有找到,然后自己就去翻了翻源码,发现了. 开启监听是: HookMouse()和HookKeyboard() 暂停监听是: ...

  4. 移动端软键盘兼容方案

    转自:https://segmentfault.com/a/1190000018959389 前言 最近一段时间在做 H5 聊天项目,踩过其中一大坑:输入框获取焦点,软键盘弹起,要求输入框吸附(或顶) ...

  5. jquery实现上下左右键盘监听_基于 jQuery 实现键盘事件监听控件

    最近项目里要做一个画板,需要对键盘事件进行监听,来进行诸如撤回.重做.移动.缩放等操作,因此顺手实现了一个键盘事件监听控件,期间略有收获,整理出来,希望对大家有所帮助,更希望能获得高手的指点. 1. ...

  6. 对EditText的软键盘进行监听-----android:imeOptions

    在android发开过程中,有时候需要对EditText的软键盘进行监听. 当点击软键盘回车位置按键的时候,需要实现 完成.前进.下一项.搜索.发送或其他功能,这就需要开发者对软键盘回车的点击事件进行 ...

  7. vue点击input弹出带搜索键盘并监听该元素

    1.遇到问题: 需要做一个点击input弹出带搜索的键盘. 解决: input的type="search",可弹出带搜索的键盘.并监听搜索按钮,请求数据 <input @ke ...

  8. Ionic Cordova实现软键盘的监听 以及操作大全

    今天在做项目的时候,在键盘显示的时候隐藏某些操作,键盘隐藏的时候,打开某些操作.网上找了很久,才找到具体的监听事件,特此记录下来,供大家参考: 首先需要添加插件: cordova plugin add ...

  9. [Java][详解]使用jintellitype实现键盘全局监听

    [下载jintellitype] 首先要下载jintellitype-1.3.9,这里提供下载地址 [jintellitype-百度网盘下载] 链接: https://pan.baidu.com/s/ ...

最新文章

  1. 基于TPS28225功率MOS半桥电路测试
  2. 移动开发必须要了解的易盾加固生态
  3. 中国象棋人机博弈程序(扁平化棋局) C语言实现
  4. JS获取HTML元素属性【转】
  5. 10-表格添加、删除
  6. oracle 中least,ORACLE 内置函数之GREATEST和LEAST
  7. leetcode - 1221. 分割平衡字符串
  8. 带你自学Python系列(十五):Python中类的用法(一)
  9. 作为前端,你需要了解的js构造函数和原型
  10. pl/sql developer中建立job
  11. LeetCode93 Restore IP Addresses
  12. 31 GroupSock(AddressString)——live555源码阅读(四)网络
  13. COM口总是有惊叹号怎么办
  14. 图书信息管理系统的设计与实现
  15. 高速公路车路协同创新示范情况全扫描(2021版)
  16. 好用的电台APP推荐|这些年,陪伴我上下班的声音
  17. cla作用matlab,健身搞肌运动补剂小讲堂:共轭亚油酸CLA功效解析
  18. windows python3.6 tensorflow1.12搭建RCNN运行环境 bug解决
  19. freeCodeCamp 练习3 -- Learn accessbility by building a quiz
  20. 【python10个小实验】2、石头、剪刀、布

热门文章

  1. Lottie——强大的动画渲染框架
  2. 三菱伺服自动调谐_三菱伺服电机的一键式调整功能
  3. 深度学习在人脸识别中的应用 ——优图祖母模型的“进化”
  4. 解构微信(三):揭秘微信的敏捷开发与流程管理
  5. 【题解】【AcWing】1579. 插入还是归并
  6. 凝思Linux切换到root时出错
  7. PPT文件压缩怎么压缩
  8. 质量管理八大原则深度解析,必看好文
  9. 接触 Firebug
  10. 计算机病毒教案 大学,计算机病毒教案版本