我认为这是一个很大的限制,你不能在电晕模拟器中使用“newTextField”,我实际上需要构建应用程序并将其安装在我的设备上以查看它是否正常工作。
以下代码由于某种原因不适合我,我不知道如何调试它。 我只是想保存“玩家名字”
local function textListener( event )
if ( event.phase == "began" ) then
-- user begins editing text field
print( event.text )
myGameSettings.playerName = event.text
saveSettings()
elseif ( event.phase == "ended" ) then
-- text field loses focus
myGameSettings.playerName = event.text
saveSettings()
elseif ( event.phase == "ended" or event.phase == "submitted" ) then
myGameSettings.playerName = event.text
saveSettings()
-- do something with defaultField's text
elseif ( event.phase == "editing" ) then
print( event.newCharacters )
print( event.oldText )
print( event.startPosition )
print( event.text )
end
end
local playerName = native.newTextField( centerX, display.contentCenterY-100, display.contentWidth, 50 )
display.newText("Choose a name", 20, playerName.y-70, native.systemFont)
playerName:addEventListener( "userInput", textListener )
答案 0 :(得分:0)
它似乎仅在企业版中受支持。
答案 1 :(得分:0)
你的问题是它在模拟器中不起作用吗?因为他们不在Windows PC模拟器上工作,但他们在Mac模拟器中工作。我在Mac和PC上开发,可以在Mac上完美使用,但不能在PC上使用。我在企业版上也没有,但我在免费版上。
当我在PC上工作时,我的调试方法是将设备连接到计算机并打印出调试日志,因为它会打印任何错误(我显然只能使用连接到我PC的Android设备)。
答案 2 :(得分:0)
首先,native.newTextField不会显示在窗口机器模拟器上。你需要在设备上构建它以进行测试。但你可以在模拟器上调试它。 使用下面的代码在模拟器上进行调试。
注意:textField区域不可见但是当您单击它时(假设文本字段位置),将显示带有蓝色矩形边框的文本字段。
-- Hide the status bar
display.setStatusBar( display.HiddenStatusBar )
-- Set the background to white
display.setDefault( "background", 255, 255, 255 )
-- Require the widget & storyboard libraries
local widget = require( "widget" )
local function textListener( event )
if ( event.phase == "began" ) then
print( event.text )
elseif ( event.phase == "ended" or event.phase == "submitted" ) then
-- do something with defaultField's text
elseif ( event.phase == "editing" ) then
print("in move")
print( event.newCharacters )
print( event.oldText )
print( event.startPosition )
print( event.text )
end
end
local playerName = native.newTextField( 300, 300, 400, 50 )
local a = display.newText("Choose a name", 20, playerName.y-70, native.systemFont)
a.x=100
a.y = playerName.y-70
a:setTextColor(0,0,0)
playerName:addEventListener( "userInput", textListener )