Cocos2dx中关于CCEditBox的那些事

语言环境:Quick3.6.5Release(自修正版 ) + lua 5.1

      学习Cocos2dx的应该都知道,在Cocos中用户输入控件总共有2种:【CCTextFieldTTF】与【CCEditBox】,使用CCTextFieldTTF的缺点是没有光标,自带的监听事件无法响应键盘的按键事件(除非自己注册),密码框输入完全看不到输入的是什么,这让我尝试着使用CCEditBox,CCEditBox的功能相对强大,但对应的使用也就复杂些,以下是我个人在使用过程中的一些心得,使用时是依靠Lua来实现的,由于扩展类的缘故,这里只写最终实现,具体踩坑还是需要自己解决,有问题可以联系我:

1. 创建方式:cc.EditBox:create(cc.size(w,h), imageNormal, imagePressed, imageDisabled)

CCScale9Sprite对象,是一种CCSprite对象的变形,它的用法和CCSprite一样,不同点是,CCScale9Sprite对象有个特性就是缩放贴图时可以尽量不失帧。

2. 重要方法解析:

    setText("字符串");         //设置文本

    setFontColor(color);       //设置文本颜色

    setPlaceHolder("文本");    //设置预设文本

    getPlaceHolder(对象);      //获得预设文本

    setMaxLength(对象);        //设置最大长度

    getMaxLength(对象);        //获得最大长度

    setInputMode();            //设置键盘模式

    setInputFlag();            //设置文本类型

    setReturnType();           //设置键盘样式

    ---/*[setInputFlag]:设置文本输入类型
    --0、密码形式
    --1、敏感数据输入
    --2、每个单词首字符大写,并有提示
    --3、第一句首字符大写,并有提示
    --4、自动大写
    --*/
    ---/*[setInputMode]:设置键盘输入模式
    --0、允许用户输入任何文本,包括换行符
    --1、允许用户输入电子邮件地址。
    --2、允许用户输入整数值
    --3、允许用户输入电话号码。
    --4、允许用户输入URL。
    --5、允许用户输入实数值。
    --6、允许用户输入任何文本,但换行符除外。
    ---*/
    ---/*[setReturnType]:设置键盘样式
    --0、默认类型
    --1、Done字样
    --2、Send字样
    --3、Search字样
    --4、Go字样
    --*/

3. 监听事件

     注册监听:registerScriptEditBoxHandler()     自带、原生

     监听事件:其与节点监听不同,它的函数写法为:

--参数:按键状态,当前EditBox对象
function(state,obj)  

	if state == 'began' then
		
	elseif state == 'changed' then
		
	elseif state == 'ended' then  
	
	elseif state == 'return' then
		
	end
end

4.

      如果EditBox 的上级节点设置了隐藏属性,而此时你的EditBox 正在运行 会出现EditBox 依然可输入,但是控件已被隐藏,点击手机自带的返回键时,若 EditBox当前正在活动,EditBox 会关闭输入,其监听事件没有监听此时的返回状态,在苹果手机中尤为明显,这应该是事件的传递过程出现了问题,解决思路:移除上级节点 而不是隐藏,因为销毁事件是可以正常传递的,在EditBox 活动时关闭手机自带的按键返回。暂时只能这样做,要彻底解决这个问题还需要修改底层引擎代码,希望有引擎组的人能引起重视。

     [cocos 3.1.2]

     有几次设置EditBox的控件宽高无效,原来是没设置字体的原因

     假设FontName没设置,则m_strFontName.length()<0,固设置字号大小将不起作用。因此得先设置字体,然后设置字号才可用。

    有些控件是有默认字体的,但Editbox 控件貌似没有。

 

注意:若EditBox没有:setName() ,那么 Font 、FontSize 不起作用 

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值