cocos2dx lua 再谈实现EditBox输入框

16 篇文章 0 订阅
11 篇文章 0 订阅

引言

由于前一段时间用了EditBox控件感觉还是挺好用的,今天总结发现不知不觉写了不少冗余代码,看着着实不爽,决定修改一下,封装成一个公共方法中,以便后续工作中方便调用,也作为一个提醒,时刻告诫自己不要写一行重复的代码!好了,闲言少叙直接上代码:

代码片段

 

--创建EditBox输入框
function funA:createEditBox(name,bgImg,pos,size,inputMode,fontColor,maxLength,fontSize,placeHolder,funHandle)

    local editTxt= ccui.EditBox:create(size, bgImg,ccui.TextureResType.plistType)  --输入框尺寸,背景图片
    editTxt:setAnchorPoint(0.5,0.5)
    editTxt:setName(name)
    editTxt:setPosition(pos)                        --设置输入框的位置
    editTxt:setFontSize(fontSize)                   --设置输入设置字体的大小
    if maxLength then
        editTxt:setMaxLength(maxLength)             --设置输入长度为6
    end
    editTxt:setFontColor(fontColor)                 --设置输入的字体颜色
    --editTxt:setFontName("simhei")                 --设置输入的字体为simhei.ttf
    editTxt:setPlaceHolder(placeHolder)             --设置预制提示文本
    editTxt:setReturnType(cc.KEYBOARD_RETURNTYPE_DONE)  --输入键盘返回类型,done,send,go等KEYBOARD_RETURNTYPE_DONE
    editTxt:setInputMode(inputMode) --输入模型,如整数类型,URL,电话号码等,会检测是否符合
    editTxt:registerScriptEditBoxHandler(funHandle) --输入框的事件,主要有光标移进去,光标移出来,以及输入内容改变等
--  editTxt:setHACenter() --输入的内容锚点为中心,与anch不同,anch是用来确定控件位置的,而这里是确定输入内容向什么方向展开(。。。说不清了。。自己测试一下)
   
--  self.panelMiddle:addChild(editTxt,1)
    
	return editTxt
end

下面我们来调用一下,别忘了引用哦~:

 

--创建Editbox输入框   
local fontColor = txtInput:getTextColor()
self.txtInputStr = PublicSystem:createEditBox("txtInputStr","bg/bg_1.png",cc.p(txtInput:getPosition()),
				txtInput:getContentSize(),cc.EDITBOX_INPUT_MODE_NUMERIC,fontColor,6,56,"请输入XX",handler(self,self.editboxhandle))
imgInputStrBg:addChild(self.txtInputStr,1)

--委托方法 
function MyClubLayer:editboxhandle(streventname,sender)
    if streventname == "began" then
    elseif streventname == "ended" then
        if sender:getName() == "a" then
            xxx = sender:getText()
        elseif sender:getName() == "b" then
            xxx = sender:getText()
        elseif sender:getName() == "c" then
            xxx = tonumber(sender:getText())
        end      
    elseif streventname == "return" then
    elseif streventname == "changed" then
    end
end


=================================== the end ====================================

 


好了,今天的分享就到这里,如有不足之处,还望大家及时指正,随时欢迎探讨交流!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

对酒当歌﹏✍

您的鼓励是我写作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值