当 UI InputField 获得焦点时,所有文本都会被突出显示。我想把插入符号移动到文本的末尾,以便用户可以继续输入文本。目前,我有一个 hack 解决方案,它能够正常工作,但在文本被突出显示时仍然存在短暂的时刻。这是我的 hack:
我也在查看InputField的源代码。但是我在创建没有SelectAll()函数的自定义输入框时遇到了麻烦。由于
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;
}
}
}
我也在查看InputField的源代码。但是我在创建没有SelectAll()函数的自定义输入框时遇到了麻烦。由于
UnityEngine.UI.SetPropertyUtility
的保护级别,我得到了一堆错误。