关于两种输入框的问题

我希望打到的效果是:弹出输入法时,整个场景被输入法顶上去,

我试了两种输入框,一个 CCEditBox:

    local s9sprite = CCScale9Sprite:create("image/ccs/common/inputBg.png")
    local input = CCEditBox:create(CCSizeMake(300, 50), s9sprite)
    input:setAnchorPoint(ccp(0,0))
    input:setPosition(ccp(100, 10))
    Layer:addChild(input) 
    input:setOpacity(200);  
    input:setFontSize(10); 
    input:setInputMode(kEditBoxInputModeAny); 


```

这种只要开始输入,就会在屏幕最上面弹出来一个新的输入框



另一种CCTextFieldTTF:
    local textfield = CCTextFieldTTF:textFieldWithPlaceHolder("点击输入信息" , FONT , 22)
    display.align(textfield , display.CENTER_LEFT , 0 , 0)
    textfield:setColor( ccc3( 0x4d , 0x15 , 0x15 ) )

    Layer:addChild(textfield)

    textfield:setPosition(ccp(100, 50))


```

    
这种一旦开始输入,就会弹出输入法,但是会盖住输入框

请问有没有什么办法能达到场景被输入法顶起来的效果,难道是我用的控件不对?还是需要调用什么函数?

目前的控件都还没有你要的效果,需要的话只能自己修改了

感谢你的回答,那请问,有没有方法获得弹出输入法的高度

根据具体的平台,使用原生api来获取吧

马之

自己写一个类继承CCTextFieldTTF,它的虚函数,keyboardWillShow(CCImeKeyboardNotificationInfo&info),和keyboardWillHide。
在其参数info 的 info.end.size就是键盘size。
你可以依据它的height高于本身的this->GetPositionY(),就往上移动父layer(前提是父layer的位置y为0,否则不能这么判断需减去,这里仅假定最简单的情况,输入框就放在一个layer下且该layer的位置y=0)。
在keyboardWillHide的时候再重置该layer的位置y=0.

thx:14::14: