viewNode.inputUserID:setInputMode(cc.EDITBOX_INPUT_MODE_NUMERIC) --设置editBox输入模式是数字,但还是可以输入,.+#等字符 viewNode.inputUserID:setMaxLength(MAX_USERID_LEN) viewNode.inputUserID:registerScriptEditBoxHandler(handler(self, self.onInputUserIDChanged)) --在onInputUserIDChanged中做处理
function CLASS:onInputUserIDChanged(strEventName, pSender) if strEventName ~= "changed" then return end --only input for number if self._viewNode and self._viewNode.inputUserID then local str = self._viewNode.inputUserID:getString() local astr = string.match(str, "%d+") self._viewNode.inputUserID:setString(astr) print(astr) end end
editBox编辑框绑定事件registerScriptEditBoxHandler:
--定义编辑框CCEditBox的回调事件 local function editBoxTextEventHandle(strEventName,pSender) local edit = tolua.cast(pSender,"CCEditBox") local strFmt if strEventName == "began" then --编辑框开始编辑时调用 strFmt = string.format("editBox %p DidBegin !", edit) print(strFmt) elseif strEventName == "ended" then --编辑框完成时调用 strFmt = string.format("editBox %p DidEnd !", edit) print(strFmt) elseif strEventName == "return" then --编辑框return时调用 strFmt = string.format("editBox %p was returned !",edit) if edit == EditName then --判断是哪个编辑框,在多个编辑框同时绑定此函数时 需判断时哪个编辑框
--editBox编辑框编辑模式 setInputMode
cc.EDITBOX_INPUT_MODE_ANY = 0
cc.EDITBOX_INPUT_MODE_EMAILADDR = 1
cc.EDITBOX_INPUT_MODE_NUMERIC = 2
cc.EDITBOX_INPUT_MODE_PHONENUMBER = 3
cc.EDITBOX_INPUT_MODE_URL = 4
cc.EDITBOX_INPUT_MODE_DECIMAL = 5
cc.EDITBOX_INPUT_MODE_SINGLELINE = 6
string.match的用法:
参考:http://www.360doc.com/content/16/0421/18/478627_552643702.shtml