native.newTextField()

类型 函数
native.*
返回值 TextField
修订 版本 2024.3703
关键词 文本输入, 文本字段, 原生文本
另请参阅 native.newTextBox()
native.setKeyboardFocus()
object.inputType
userInput

概述

创建一个单行 TextField 对象用于文本输入。对于多行文本输入,请参阅 native.newTextBox()

文本字段的默认字体大小取决于字段的高度,并计算为适合字段内部的最大字体大小,同时考虑诸如平台特定边距等因素。创建文本字段的最简单方法是设置其高度并让字体大小自动计算 — 但是,请注意下面的第一个“注意事项”。

原生文本字段可以监听 userInput 事件(参见示例)。

原生文本字段可以显示可选的 占位符 文本(默认为 nil)。这可以提供用户应该在字段中输入内容的“提示”。如果设置,占位符字符串将使用相同的样式信息显示(文本颜色 除外)。占位符在字段中输入实际文本后不会出现,并且它目前不参与确定文本字段的大小。

注意事项

语法

native.newTextField( x, y, width, height )
x (必填)

数字. 对应于文本字段中心的 x 坐标。

y (必填)

数字. 对应于文本字段中心的 y 坐标。

width (必填)

数字. 文本字段的宽度。

height (必填)

数字. 文本字段的高度。

属性 / 方法

有关方法和属性列表,请参阅 TextField 文档。

事件

有关各种 TextField 对象事件的相关属性,请参阅 userInput 事件文档。

示例

标准
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 )