小编rjt*_*jth的帖子

UI.InputField获得焦点时如何禁用SelectAll()文本?

UI InputField在获得焦点时会突出显示其中的所有文本。我想将插入符号移动到文本的末尾,以便用户可以继续在其中写入文本。目前,我有一个可以解决问题的hack解决方案,但是突出显示文本还有很短的时间。这是我的技巧:

using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;

public class TextFieldBehaviour : MonoBehaviour, ISelectHandler
{
    private InputField inputField;
    private bool isCaretPositionReset = false;

    void Start()
    {
        inputField = gameObject.GetComponent<InputField>();
    }

    public void OnSelect (BaseEventData eventData) 
    {
        isCaretPositionReset = false;
    }

    void Update()
    {
        if(inputField.isFocused == true && isCaretPositionReset == false)
        {
            inputField.caretPosition = inputField.text.Length;
            isCaretPositionReset = true;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我也在检查InputField 的源代码。但是我在创建没有SelectAll()函数的自定义代码时遇到了麻烦。由于的保护水平,我得到了很多错误UnityEngine.UI.SetPropertyUtility

c# unity-game-engine

2
推荐指数
1
解决办法
1366
查看次数

标签 统计

c# ×1

unity-game-engine ×1