美文网首页
cocos2dx-lua中的Textfield和EditBox的

cocos2dx-lua中的Textfield和EditBox的

作者: 东方小白 | 来源:发表于2019-11-06 14:57 被阅读0次

参考链接

TextField:

self.textField = self.node_root:getChildByName("TextField")
self.textField:setSingleLineEnabled(false) -- true:单行输入 false:多行输入
-- self.textField:setFontName("res/font/Arial.ttf")
-- self.textField:setInputMode(cc.EDITBOX_INPUT_MODE_ANY) -- ExtensionConstants.lua
self.textField:addEventListener(function(sender, eventType)
-- GuiConstants.lua
if eventType == 0 then
-- print("ccui.TextFiledEventType.attach_with_ime")
elseif eventType == 1 then
-- print("ccui.TextFiledEventType.detach_with_ime")
elseif eventType == 2 then
-- print("ccui.TextFiledEventType.insert_text")
print(sender:getString())
elseif eventType == 3 then
-- print("ccui.TextFiledEventType.delete_backward")
end
end)
EditBox:

self.editBox_bg = self.node_root:getChildByName("editBox_bg")
self.editBox = ccui.EditBox:create(self.editBox_bg:getContentSize(), "res/editbox_bg.png", ccui.TextureResType.plistType)
self.editBox:setPlaceHolder("占位文本")
self.editBox:setInputMode(6)
self.editBox:setInputFlag(cc.EDITBOX_INPUT_FLAG_INITIAL_CAPS_WORD) -- ExtensionConstants.lua
self.editBox:setReturnType(cc.KEYBOARD_RETURNTYPE_DONE) -- ExtensionConstants.lua
self.editBox:setAnchorPoint(cc.p(0, 0.5))
self.editBox:setPosition(self.editBox_bg:getPosition())
self.editBox:setFontColor(cc.c3b(255, 255, 255))
self.editBox:registerScriptEditBoxHandler(function(eventType)
if eventType == "began" then
-- print("began")
elseif eventType == "return" or eventType == "ended" then
-- print(eventType)
print(self.editBox:getText())
elseif eventType == "changed" then
-- print("changed")
end
end)
self.node_root:addChild(self.editBox)
使用Text显示多行内容模拟EditBox多行输入:

-- 用于显示EditBox输入的内容
self.showText = self.node_root:getChildByName("Text")
self.showText:setTouchEnabled(false)
self.showText:setString("占位文本")

-- 可点击的背景图片,点击触发EditBox的点击事件
self.editBox_bg = self.node_root:getChildByName("editBox_bg")
self.editBox_bg:setTouchEnabled(true)
self.editBox_bg:addTouchEventListener(function(sender, eventType)
if eventType == ccui.TouchEventType.ended then
self.editBox:touchDownAction(self.editBox, ccui.TouchEventType.ended)
end
end)

-- EditBox,隐藏
self.editBox = ccui.EditBox:create(self.editBox_bg:getContentSize(), "res/editbox_bg.png", ccui.TextureResType.plistType)
self.editBox:setInputMode(6)
self.editBox:setInputFlag(cc.EDITBOX_INPUT_FLAG_INITIAL_CAPS_WORD) -- ExtensionConstants.lua
self.editBox:setReturnType(cc.KEYBOARD_RETURNTYPE_DONE) -- ExtensionConstants.lua
self.editBox:setAnchorPoint(cc.p(0, 1))
self.editBox:setPosition(self.editBox_bg:getPosition())
self.editBox:setFontColor(cc.c3b(255, 255, 255))
self.editBox:setVisible(false)
self.editBox:registerScriptEditBoxHandler(function(eventType)
if eventType == "return" or eventType == "ended" then
local str = self.editBox:getText()
if str ~= "" then
-- 输入内容用Text显示
self.showText:setString(str)
end
end
end)
self.node_root:addChild(self.editBox)

相关文章

网友评论

      本文标题:cocos2dx-lua中的Textfield和EditBox的

      本文链接:https://www.haomeiwen.com/subject/yzuubctx.html