UIAdaptiveInput

来自于:AC模块工作室立即使用

open addEventListener close show hide becomeFirstResponder resignFirstResponder setValue getValue insertValue setPlaceholder

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。

概述

UIAdaptiveInput 是一个输入框,开发者可根据需求自定义其样式。该模块能巧妙的适配键盘高度,自定调整位置,始终紧贴软键盘

本模块在iOS平台上支持最低版本为 iOS9

open

打开输入框

open({parmas}, callback(ret, err))

params

rect:

  • 类型:JSON 对象
  • 描述:(可选项)模块的位置及尺寸
  • 注意:设置输入框初始高度意义不大,输入框高度会随着文本内容按照开发者预设的规则参数自适应
  • 内部字段:
  1. {
  2. x: 0, //(可选项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
  3. y: 0, //(可选项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
  4. w: 320, //(可选项)数字类型;模块的宽度;默认:所属的 Window 或 Frame 的宽度
  5. h: 35, //(可选项)数字类型;模块的高度(该参数仅ios有效,Android会自适应处理);默认:35
  6. }

styles:

  • 类型:JSON 对象
  • 描述:(可选项)模块各部分的样式
  • 内部字段:
  1. {
  2. bgColor: '#fff', //(可选项)字符串类型;输入框的背景色,支持 rgb、rgba、#;默认:'#fff'
  3. size: 14, //(可选项)数字类型;输入框的文字大小;默认:14
  4. color: '#000', //(可选项)字符串类型;输入框内的字体颜色,支持 rgb、rgba、#;默认:'#000'
  5. placeholderCcolor: '#ccc'//(可选项)字符串类型;输入框占位文字的颜色,支持 rgb、rgba、#;默认:'#ccc'
  6. borderColor: '#000', //(可选项)字符串类型;边框色,支持 rgb、rgba、#;默认:'#ff0000'
  7. borderWidth: 0.5, //(可选项)数字类型;边框粗细;默认:0.5
  8. marginBottom:10 //(可选项)数字类型;距离底部的边距;默认:0 注意:该参数仅支持android且仅在layoutInBottom为true时有效
  9. }

adaptive:

  • 类型:JSON对象
  • 描述:(可选项)输入框自适应相关参数配置
  • 内部字段:
  1. {
  2. maxLines: 1, //(可选项)数字类型;支持最大显示行数,超过部分可上下滚动查看。优先级低于maxLength。若本参数确定的文本最大高度小于 rect->h 设置的值,则本参数无效;默认:1
  3. maxLength: 10, //(可选项)数字类型;允许输入的最长字符数,优先级高于 maxLines;默认:无限制
  4. direction: 'down', //(可选项)字符串类型;输入框随输入文本增加而自适应改变高度时的增加方向(该参数仅ios有效,Android系统会自适应处理);取值范围:down、up;默认:down
  5. layoutInBottom:true //(可选项)布尔类型;是否放置在底部,默认:false(该参数仅支持Android)
  6. }

placeholder:

  • 类型:字符串
  • 描述:(可选项)输入框的提示文字
  • 备注:若不传则不显示占位提示文字

autoFocus:

  • 类型:布尔
  • 描述:(可选项)输入框是否自动获取焦点,并弹出键盘
  • 默认值:false

keyboardType:

  • 类型:字符串
  • 描述:(可选项)输入框获取焦点时,弹出的键盘类型;
  • 默认值:’default’
  • 注意:Android系统键盘模式为 ‘search’时输入框只能为单行
  • 取值范围:
    • default(默认键盘)
    • number(数字键盘)
    • search(搜索键盘)
    • next(下一项)
    • send(发送)
    • done(完成)

fixedOn:

  • 类型:字符串类型
  • 描述:(可选项)模块视图添加到指定 frame 的名字(只指 frame,传 window 无效)
  • 默认:模块依附于当前 window

fixed:

  • 类型:布尔
  • 描述:(可选项)模块是否随所属 window 或 frame 滚动
  • 默认值:true(不随之滚动)

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. id:1, //数字类型;输入框的id。打开多个模块时,可用此 id 区分
  3. eventType: 'show' //字符串类型;交互事件类型,
  4. //取值范围:
  5. //show(模块打开成功)
  6. }

示例代码

  1. var UIAdaptiveInput = api.require('UIAdaptiveInput');
  2. UIAdaptiveInput.open({
  3. rect: {
  4. x: 10,
  5. y: 10,
  6. w: api.winWidth-20,
  7. h: 40
  8. },
  9. styles: {
  10. size: 20,
  11. bgColor: '#FFB6C1',
  12. color: '#DC143C',
  13. borderColor: '#0000FF',
  14. placeholderColor: '#000080'
  15. },
  16. adaptive: {
  17. maxLines: 2,
  18. maxLength:1000,
  19. direction:'down'
  20. },
  21. placeholder:'请输入文本...',
  22. autoFocus: false,
  23. keyboardType: 'next',
  24. fixedOn: api.frameName,
  25. fixed: true
  26. },function(ret){
  27. //api.alert({msg:JSON.stringify(ret)});
  28. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addEventListener

事件监听

注意:

  • 在 iOS 端监听 focus 事件时,键盘弹出一次在不同的系统版本和机型上会多次执行 focus 回调。设计自己的代码逻辑时请注意这一点。
  • 在 iOS 端监听 changeValue 事件时,在不同的系统版本和机型上会多次执行 changeValue 回调。设计自己的代码逻辑时请注意这一点。

  • 在 Android端键盘类型必须与监听事件名称一致,(如键盘类型为done, 则监听事件的name=’done’)否则,无法监听相关事件,number 键盘类型对应的监听事件为done

addEventListener({params}, callback(ret))

params

name:

  • 类型:字符串
  • 描述:监听的事件类型
  • 取值范围:
    • focus(输入框获取、失去焦点事件)
    • changeValue(输入框内容改变)
    • changeHeight(输入框高度改变)
    • return(点击软键盘上的完成按钮)keyboardType为default时,该按钮是:换行;search:前往;next:下一项目;send:发送;done:完成

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. id: 1, //字符串类型;触发所监听事件的模块的ID
  3. focus: true //布尔类型;仅当 name 为 focus 时返回。true:表示输入框获取焦点;false:表示失去焦点
  4. value: //字符串类型;仅当 name 为 changeValue 时返回。表示当前输入框内文本内容
  5. height: //数字类型;仅当 name 为 changeHeight 时返回。表示当前输入框的高度
  6. }

示例代码

  1. var UIAdaptiveInput = api.require('UIAdaptiveInput');
  2. UIAdaptiveInput.addEventListener({
  3. name: 'return'
  4. }, function() {
  5. alert("return");
  6. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

close

关闭指定输入框

close({params});

params

id:

  • 类型:字符串
  • 描述:所操作模块的 ID

示例代码

  1. var UIAdaptiveInput = api.require('UIAdaptiveInput');
  2. UIAdaptiveInput.close({
  3. id: 1
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

hide

隐藏输入框,并没有从内存里清除

hide({params})

params

id:

  • 类型:字符串
  • 描述:所操作模块的 ID

示例代码

  1. var UIAdaptiveInput = api.require('UIAdaptiveInput');
  2. UIAdaptiveInput.hide({
  3. id: 1
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

show

显示输入框

show({params});

params

id:

  • 类型:字符串
  • 描述:所操作模块的 ID

示例代码

  1. var UIAdaptiveInput = api.require('UIAdaptiveInput');
  2. UIAdaptiveInput.show({
  3. id: 1
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

becomeFirstResponder

弹出键盘

becomeFirstResponder({params})

params

id:

  • 类型:字符串
  • 描述:所操作模块的 ID

示例代码

  1. var UIAdaptiveInput = api.require('UIAdaptiveInput');
  2. UIAdaptiveInput.becomeFirstResponder({
  3. id: 1
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

resignFirstResponder

隐藏键盘

resignFirstResponder({params})

params

id:

  • 类型:字符串
  • 描述:所操作模块的 ID

示例代码

  1. var UIAdaptiveInput = api.require('UIAdaptiveInput');
  2. UIAdaptiveInput.resignFirstResponder({
  3. id: 1
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setValue

设置输入框内的文字

setValue({params})

params

id:

  • 类型:字符串
  • 描述:所操作模块的 ID

value:

  • 类型:字符串
  • 描述:(可选项)要设置的输入框内的文字内容
  • 默认值:空字符串

示例代码

  1. var UIAdaptiveInput = api.require('UIAdaptiveInput');
  2. UIAdaptiveInput.setValue({
  3. value: '设置的文字'
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getValue

获取当前输入框内的文字

getValue({params},callback(ret))

params

id:

  • 类型:字符串
  • 描述:所操作模块的 ID

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. value: // 字符串类型,获取到的当前输入框内的文字
  3. }

示例代码

  1. var UIAdaptiveInput = api.require('UIAdaptiveInput');
  2. UIAdaptiveInput.getValue({
  3. id: 1
  4. },function(ret) {
  5. if (ret) {
  6. alert(JSON.stringify(ret));
  7. }
  8. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

insertValue

向当前输入框内指定位置插入字符串

insertValue({params})

params

id:

  • 类型:字符串
  • 描述:所操作模块的 ID

index:

  • 类型:数字
  • 描述:(可选项)插入当前输入框内字符串的位置
  • 默认值:当前输入框内字符串的长度

value:

  • 类型:字符串
  • 描述:(可选项)要设置的输入框内的文字内容
  • 默认值:空字符串

示例代码

  1. var UIAdaptiveInput = api.require('UIAdaptiveInput');
  2. UIAdaptiveInput.insertValue({
  3. value: '这里是插入的字符串',
  4. index: 2,
  5. id: 1
  6. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setPlaceholder

设置占位提示文字

setPlaceholder({params})

params

id:

  • 类型:字符串
  • 描述:所操作模块的 ID

placeholder:

  • 类型:字符串
  • 描述:(可选项)占位提示文字
  • 备注:若不传或传空则表示清空占位提示文字

示例代码

  1. var UIAdaptiveInput = api.require('UIAdaptiveInput');
  2. UIAdaptiveInput.setPlaceholder({
  3. placeholder: '我是占位提示文字',
  4. id: 1
  5. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。