cocos2djs 输入框修改

/**
         * 输入框锚点为(0,0.5)
         * @param textField
         * @param callback
         */
        function attachCursor(textField,callback ) {
            if(textField && textField instanceof ccui.TextField && !textField"refreshCursor"]){
                var size = textField.getContentSize();
                var cursor = new cc.DrawNode();
                cursor.drawSegment(cc.p(0,0),cc.p(0,-size.height*0.8),1,cc.color(0,0,0));
                cursor.setAnchorPoint(0,1);
                cursor.setVisible(false);
                textField.addChild(cursor);
                cursor.setPosition(0,size.height);
                var delBtn = new ccui.ImageView(res.close_default_png);
                textField.addChild(delBtn);
                delBtn.setPosition(size.width+delBtn.width/2 ,size.height*0.6);
                delBtn.setVisible(false);
                delBtn.setTouchEnabled(true);
                delBtn.addTouchEventListener(function (sender,type) {
                    if(type === ccui.Widget.TOUCH_ENDED){
                        textField.setString("");
                        textField.attachWithIME();
                        textField.refreshCursor(ccui.TextField.EVENT_DELETE_BACKWARD);
                    }
                });

                var isActed = false; //判断是否是第一次
                textField.refreshCursor = function (type) {
                    if(!isActed){
                        isActed = true;
                        this._beyondText = "";
                        cursor.runAction(cc.repeatForever(
                            cc.sequence(
                                cc.delayTime(0.5)
                                ,cc.show()
                                ,cc.delayTime(0.5)
                                ,cc.hide()
                            )
                        ));
                    }
                    if(type === ccui.TextField.EVENT_DETACH_WITH_IME){
                        cursor.setVisible(false);
                        cursor.pause();
                        delBtn.setVisible(false);
                    }
                    else{
                        cursor.setVisible(true);
                        cursor.resume();
                        delBtn.setVisible(true);
                        if(type === ccui.TextField.EVENT_INSERT_TEXT){  //添加
                            while(true){
                                if(this.getAutoRenderSize().width<=this.width){
                                    break;
                                }
                                var textStr = this.getString();
                                this._beyondText+=textStr;
                                this.setString(textStr.substring(1,textStr.length));
                            }

                        }else if(type === ccui.TextField.EVENT_DELETE_BACKWARD){
                            while(true){
                                if(this._beyondText.length==0){
                                    break;
                                }
                                var tfStr = this.getString();
                                var tf =  this._beyondText.substring(this._beyondText.length-1,this._beyondText.length)+tfStr;
                                this.setString(tf);
                                if(this.getAutoRenderSize().width>this.width){
                                    this.setString(tfStr);
                                    break;
                                }
                                this._beyondText=this._beyondText.substring(0,this._beyondText.length-1)
                            }
                        }
                        var len = 0;
                        if(this.getString().length == 0){
                            len = 0;
                        }else{
                            len = this.getAutoRenderSize().width; //the getAutoRenderSize function is string width of show
                        }
                        cursor.setPositionX(len);
                    }
                }
                textField.addEventListener(function(sender,type){
                    sender.refreshCursor(type);
                    callback && callback(sender,type);
                },textField);
            }
        }


```

在别人的基础上改的,没怎么用过,有BUG大家提下

添加了 光标 关闭按钮 输入文本超出的范围 功能