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