NInputField
NInputField组件用于在UI中展示一个可编辑的文本输入框。它会根据用户的输入显示 文本,并提供一些方法来处理文本内容的获取、清除。组件提供了对文本长度、光标位置、回车键操作等控制。
| 接口名称 | 返回值 | 接口含义 |
|---|---|---|
| SetInputFieldBackgroundStyle | void | 设置输入框背景样式类型 |
| GetInputFieldBackgroundStyle | ETransitionStyle | 获取输入框背景样式 |
| SetNormalTexture | void | 设置输入框正常显示纹理 |
| SetHighlightedTexture | void | 设置选中时显示的纹理 |
| SetPressedTexture | void | 设置按下时显示的纹理 |
| SetDisabledTexture | void | 设置不可交互时显示的纹理 |
| SetNormalColor | void | 设置正常时显示的颜色 |
| SetHighlightedColor | void | 设置选中时显示的颜色 |
| SetPressedColor | void | 设置按下时显示的颜色 |
| SetDisabledColor | void | 设置不可交互时显示的颜色 |
| SetInputTips | void | 设置输入提示文本 |
| SetText | void | 设置输入的文本内容 |
| SetFixWorldScale | void | 设置canvas渲染模式改变时输入框文本的缩放比例是否进行修改 |
| InsertTextAtCaret | void | 在光标的位置插入文本 |
| GetText | std::string | 获取输入框中文本内容 |
| SetTextType | void | 设置输入文本的类型,是标准类型还是加密类型 |
| SetTextMaxNumber | void | 设置最大输入长度 |
| SetCaretBlinkRate | void | 设置光标每秒闪烁的频率 |
| SetCaretWidth | void | 设置光标的宽度 |
| SetInputFieldFont | void | 设置输入文本的字体 |
| SetInputFieldDisabled | void | 设置输入框是否可输入 |
| SetEnableIME | void | 设置是否支持调用外部的输入法(仅在android平台支持) |
| SetEnableKeyboard | void | 设置是否支持系统输入法(仅在android平台支持) |
| SetCaretAlwaysShow | void | 设置是否一直显示光标 |
| GetTipsLabel | NActorPtr | 获取提示文本控件 |
| GetInputLabel | NActorPtr | 获取输入文本控件 |
| SetInputActiveCallback | void | 设置输入被激活的回调函数 |
| SetInputChangeCallback | void | 设置输入文本改变的回调函数 |
| SetInputSubmitCallback | void | 设置提交输入文本的回调函数 |
| OnBackSpace | void | 删除光标处的文本内容 |
设置和获取背景样式
接口: 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 | 设置光标是否显示 |
代码示例:
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 | 回调函数名 |
描述: 通过以上接口可以监听输入事件的一些回调,例如输入框激活回调,输入内容发生改变的回调,提交输入内容的回调。
代码示例:
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)
{
}
