类型 函数 库 native.* 返回值 TextField 修订 版本 2024.3703 关键词 文本输入, 文本字段, 原生文本 另请参阅 native.newTextBox() native.setKeyboardFocus() object.inputType userInput
创建一个单行 TextField 对象用于文本输入。对于
文本字段的默认字体大小取决于字段的高度,并计算为适合字段内部的最大字体大小,同时考虑诸如
原生文本字段可以监听 userInput 事件(参见示例)。
原生文本字段可以显示可选的 占位符 文本(默认为 nil
)。这可以提供用户应该在字段中输入内容的“提示”。如果设置,占位符字符串将使用相同的样式信息显示(文本颜色 除外)。占位符在字段中输入实际文本后不会出现,并且它目前不参与确定文本字段的大小。
Corona 模拟器中原生控件的呈现只能近似于实际设备。始终在设备上进行测试,并假设设备上的行为/外观是正确的。特别是,某些设备上文本字段的内部边距可能比预期的要大得多,从而减少了实际文本的可用空间,并使字体看起来非常小,因为它正在被
原生文本字段不是 OpenGL 画布的一部分,也不遵循显示对象层次结构,因此它们将始终显示在普通显示对象的前面,包括图像、文本和矢量对象。但是,原生文本字段可以“插入” (object:insert()) 到 Corona 显示组 中,它们将与该组一起移动。
要从显示中删除原生文本字段,请使用 object:removeSelf()
。
native.setKeyboardFocus() API 用于显示和隐藏用于文本输入的键盘(仅适用于设备和 Xcode iOS 模拟器)。
在 Android 上,由于 Corona 在多个线程上运行,因此在设置 TextField 后立即获取其 .text
值将不会返回正确的值。此操作应在短暂的 计时器 后或下一个时间步长期间执行。
native.newTextField( x, y, width, height )
数字. 对应于文本字段中心的 x 坐标。
数字. 对应于文本字段中心的 y 坐标。
数字. 文本字段的宽度。
数字. 文本字段的高度。
有关方法和属性列表,请参阅 TextField 文档。
local defaultField local function textListener( event ) if ( event.phase == "began" ) then -- User begins editing "defaultField" elseif ( event.phase == "ended" or event.phase == "submitted" ) then -- Output resulting text from "defaultField" print( event.target.text ) elseif ( event.phase == "editing" ) then print( event.newCharacters ) print( event.oldText ) print( event.startPosition ) print( event.text ) end end -- Create text field defaultField = native.newTextField( 150, 150, 180, 30 ) defaultField:addEventListener( "userInput", textListener )
local numericField local function textListener( event ) if ( event.phase == "began" ) then -- User begins editing "numericField" end end -- Create text field numericField = native.newTextField( 150, 150, 180, 30 ) numericField.inputType = "number" numericField:addEventListener( "userInput", textListener )