引言
由于项目的关系,这段时间接触到cocos2dx的引擎,之前只是听说,从未使用!由于项目有用户输入的问题!原本打算用TextField,踩过坑的同学说bug什么的,搞得我放弃了!推荐了这个EditBox,乍一看也不知道怎么用!找了好多栗子感觉好记性不如烂笔杆还是记下来,以便有需要的同学查看,也方便以后自己查阅!
代码片段
这里是创建和设置,代码如下:
--创建输入框
function UiLayer:onCreateTextField()
local editTxt= ccui.EditBox:create(cc.size(350,100), "D:\\input_Bg.png") --输入框尺寸,背景图片
editTxt:setName("inputTxt")
editTxt:setAnchorPoint(0.5,0.5)
editTxt:setPosition(970,515) --设置输入框的位置
editTxt:setFontSize(100) --设置输入设置字体的大小
editTxt:setMaxLength(6) --设置输入最大长度为6
editTxt:setFontColor(cc.c4b(124,92,63,255)) --设置输入的字体颜色
editTxt:setFontName("simhei") --设置输入的字体为simhei.ttf
-- editTxt:setInputMode(cc.EDITBOX_INPUT_MODE_NUMERIC) --设置数字符号键盘
-- editTxt:setPlaceHolder("请输入账号") --设置预制提示文本
editTxt:setReturnType(cc.KEYBOARD_RETURNTYPE_DONE) --输入键盘返回类型,done,send,go等KEYBOARD_RETURNTYPE_DONE
editTxt:setInputMode(cc.EDITBOX_INPUT_MODE_NUMERIC) --输入模型,如整数类型,URL,电话号码等,会检测是否符合
editTxt:registerScriptEditBoxHandler(function(eventname,sender) self:editboxHandle(eventname,sender) end) --输入框的事件,主要有光标移进去,光标移出来,以及输入内容改变等
self:addChild(editTxt,5)
-- editTxt:setHACenter() --输入的内容锚点为中心,与anch不同,anch是用来确定控件位置的,而这里是确定输入内容向什么方向展开(。。。说不清了。。自己测试一下)
end
这里是事件处理,代码如下:
--输入框事件处理
function Ui:editboxHandle(strEventName,sender)
if strEventName == "began" then
sender:setText("") --光标进入,清空内容/选择全部
elseif strEventName == "ended" then
--当编辑框失去焦点并且键盘消失的时候被调用
elseif strEventName == "return" then
--当用户点击编辑框的键盘以外的区域,或者键盘的Return按钮被点击时所调用
elseif strEventName == "changed" then
--输入内容改变时调用
end
end