Skip to content

NInputField

NInputField组件用于在UI中展示一个可编辑的文本输入框。它会根据用户的输入显示 文本,并提供一些方法来处理文本内容的获取、清除。组件提供了对文本长度、光标位置、回车键操作等控制。

接口名称返回值接口含义
SetInputFieldBackgroundStylevoid设置输入框背景样式类型
GetInputFieldBackgroundStyleETransitionStyle获取输入框背景样式
SetNormalTexturevoid设置输入框正常显示纹理
SetHighlightedTexturevoid设置选中时显示的纹理
SetPressedTexturevoid设置按下时显示的纹理
SetDisabledTexturevoid设置不可交互时显示的纹理
SetNormalColorvoid设置正常时显示的颜色
SetHighlightedColorvoid设置选中时显示的颜色
SetPressedColorvoid设置按下时显示的颜色
SetDisabledColorvoid设置不可交互时显示的颜色
SetInputTipsvoid设置输入提示文本
SetTextvoid设置输入的文本内容
SetFixWorldScalevoid设置canvas渲染模式改变时输入框文本的缩放比例是否进行修改
InsertTextAtCaretvoid在光标的位置插入文本
GetTextstd::string获取输入框中文本内容
SetTextTypevoid设置输入文本的类型,是标准类型还是加密类型
SetTextMaxNumbervoid设置最大输入长度
SetCaretBlinkRatevoid设置光标每秒闪烁的频率
SetCaretWidthvoid设置光标的宽度
SetInputFieldFontvoid设置输入文本的字体
SetInputFieldDisabledvoid设置输入框是否可输入
SetEnableIMEvoid设置是否支持调用外部的输入法(仅在android平台支持)
SetEnableKeyboardvoid设置是否支持系统输入法(仅在android平台支持)
SetCaretAlwaysShowvoid设置是否一直显示光标
GetTipsLabelNActorPtr获取提示文本控件
GetInputLabelNActorPtr获取输入文本控件
SetInputActiveCallbackvoid设置输入被激活的回调函数
SetInputChangeCallbackvoid设置输入文本改变的回调函数
SetInputSubmitCallbackvoid设置提交输入文本的回调函数
OnBackSpacevoid删除光标处的文本内容

设置和获取背景样式

接口: void SetInputFieldBackgroundStyle(ETransitionStyle ButtonBkgStyle); ETransitionStyle GetInputFieldBackgroundStyle();

参数: ButtonBkgStyle:按钮背景显示类型,分为纹理,纯色

描述: 设置输入框背景显示效果,可以是纹理,也可以是纯色。

代码示例: 可以参考NButton组件代码示例。

设置不同事件背景显示效果

接口: void SetNormalTexture(const std::string fileName); void SetHighlightedTexture(const std::string fileName); void SetPressedTexture(const std::string fileName); void SetDisabledTexture(const std::string fileName); void SetNormalColor(Color32 color); void SetHighlightedColor(Color32 color); void SetPressedColor(Color32 color); void SetDisabledColor(Color32 color); void SetInputFieldDisabled(bool bDisabled);

参数:

参数说明
fileName输入框背景显示的纹理资源路径
color输入框背景显示的颜色值
bDisabled输入框是否可交互
描述:
通过上述接口可以实现,未选中显示的效果,选中事件背景显示的效果,按下事件背景显示的效果,以及不允许交互背景显示的效果。

代码示例: 可以参考NButton组件相关示例。

设置和获取提示文本和输入文本

接口: void SetInputTips(std::string tips); NActorPtr GetTipsLabel(); void SetText(std::string text); NActorPtr GetInputLabel(); std::string GetText(); void SetTextMaxNumber(int maxNum); void SetTextType(InputFieldTextType InputfieldType);

参数:

参数说明
tips提示文本内容
text输入文本内容
maxNum文本可输入的最大长度
InputfieldType输入文本类型,分为标准文本,加密文本
描述:
通过上述接口可以动态设置提示文本内容,以及输入文本内容,可以显示输入文本的最大数量,以及输入文本的类型。

设置光标相关属性

接口: void InsertTextAtCaret(std::string text); void SetCaretBlinkRate(int Rate); void SetCaretBlinkRate(float Rate); void SetCaretWidth(float width); void SetCaretAlwaysShow(bool show);

参数:

参数说明
text在光标处插入文本内容
Rate光标的闪烁频率,每秒/次
width设置光标的宽度
show设置光标是否显示

代码示例:

cpp
void NInputFieldTest::Start()
{
    auto inputFieldAct = GetNActor();
    auto inputFieldCom=inputFieldAct->GetComponent<NInputField>();
    inputFieldCom->InsertTextAtCaret("dd");
    inputFieldCom->SetCaretAlwaysShow(true);
    inputFieldCom->SetCaretWidth(2);
    inputFieldCom->SetCaretBlinkRate(10);
}

添加输入事件监听

接口: void SetInputActiveCallback(std::string actorName, std::string comName, std::string funName); void SetInputChangeCallback(std::string actorName, std::string comName, std::string funName); void SetInputSubmitCallback(std::string actorName, std::string comName, std::string funName);

参数:

参数说明
actorName控件Actor的名称
comName回调函数所在脚本类名
funName回调函数名

描述: 通过以上接口可以监听输入事件的一些回调,例如输入框激活回调,输入内容发生改变的回调,提交输入内容的回调。

代码示例:

cpp
void NInputFieldTest::Start()
{
    auto inputFieldAct = GetNActor();
    auto actorname=inputFieldAct->GetName();
    auto inputFieldCom=inputFieldAct->GetComponent<NInputField>();
    inputFieldCom->SetInputActiveCallback(actorname,"NInputFieldTest","OnInputActiveCallback");
    inputFieldCom->SetInputChangeCallback(actorname, "NInputFieldTest", "OnInputChangeCallback");
    inputFieldCom->SetInputSubmitCallback(actorname, "NInputFieldTest", "OnInputSubmitCallback");
}
void NInputFieldTest::OnInputActiveCallback(const std::string& str)
{
}
void NInputFieldTest::OnInputChangeCallback(const std::string& str)
{
}
void NInputFieldTest::OnInputSubmitCallback(const std::string& str)
{
}