【问题标题】:Write a letter in InputField at Caret Position在插入位置的 InputField 中写一封信
【发布时间】:2020-06-25 09:38:24
【问题描述】:

我在 Unity 中创建了一些按钮。单击按钮时,将调用一个函数以在InputText 组件上写入文本。功能如下:

public void JButton()
{
    textshowed.text = textshowed.text + "J";
}

但是如果我想在一行之间写一个字母,这个词写在最后一行。 我应该怎么做才能写到光标/插入符号所在的字母?

【问题讨论】:

  • 我正在使用输入字段..但是在按下按钮时在其中写入文本
  • 现在我得到了你的问题,很抱歉,Unity 没有暴露方法或变量来显示插入符号的位置,所以你必须编写自己的 InputField 来实现这一点
  • 我希望您没有为字母表中的每个字母设置一个组件 .... 而是始终使用该组件并使用 public void Button(string value) { textshowed.text += value; } 并通过配置相应的 string 值督察...
  • @aqeel,你试过我的解决方案了吗?

标签: unity3d user-interface button text onclick


【解决方案1】:

请注意,它不处理 InputField 中的选择。以下可能足以满足您的目的?

public class button : MonoBehaviour
{
    public InputField myInput;
    int caretposition;
    public void JButton()
    {
        myInput.text = myInput.text.Insert(caretposition, "J");
        //Debug.Log(myInput.caretPosition);

    }

    private void Update()
    {
        if (myInput.isFocused)
        {
            caretposition = myInput.caretPosition;
        }
    }
}

【讨论】:

  • 按钮停止工作..它没有写任何东西
  • 好的,将名称 onJClick() 更改为 JButton() 以使其与您的名称相同。在你的脚本上也改变它。
  • 好的,非常感谢!问题出在这个 myInput.text = myInput.text.Insert(caretposition, "J");
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-21
  • 1970-01-01
相关资源
最近更新 更多