cocos2dx lua实现EditBox输入框

引言

        由于项目的关系,这段时间接触到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

 

 

你可能感兴趣的:(Lua,cocos2dx,cocos2dx-lua)