27 lines
1.1 KiB
C#
27 lines
1.1 KiB
C#
using Cysharp.Threading.Tasks;
|
|
using TMPro;
|
|
|
|
namespace UVC.Extention
|
|
{
|
|
public static class TMP_InputFieldEx
|
|
{
|
|
/// <summary>
|
|
/// inputField를 포커싱하고 캐럿(커서)을 텍스트의 끝으로 이동시킵니다.
|
|
/// </summary>
|
|
/// <param name="inputField"></param>
|
|
/// <returns></returns>
|
|
public static async UniTaskVoid SetCaretToEndAsync(this TMP_InputField inputField)
|
|
{
|
|
if (inputField == null) return;
|
|
inputField.ActivateInputField();
|
|
// UI가 업데이트될 때까지 프레임의 끝에서 대기합니다.
|
|
await UniTask.WaitForEndOfFrame();
|
|
// 캐럿(커서) 위치를 텍스트의 끝으로 이동시킵니다.
|
|
inputField.caretPosition = inputField.text.Length;
|
|
// 텍스트가 선택되지 않도록 선택 시작점과 끝점을 동일하게 설정합니다.
|
|
inputField.selectionAnchorPosition = inputField.text.Length;
|
|
inputField.selectionFocusPosition = inputField.text.Length;
|
|
}
|
|
}
|
|
}
|