Я пытаюсь написать персидские поля ввода единства. Персидский язык имеет право на левый язык, а алфавит подобен арабскому.Запись RTL в поле ввода
Я нашел library, который преобразует и корректирует текст. Это прекрасно работает. Когда я показываю преобразованный текст в Debug.Log()
, все идеально, но проблема в том, когда я собираюсь поместить исправленный текст в поле ввода, это будет отменено! Я попытался изменить текст поля ввода, но ничего не произошло!
Вот мой код
public InputField empName;
PersianMaker pm;
string tempStr = "";
private void Start()
{
pm = new PersianMaker();
}
void OnGUI()
{
tempStr = "";
if (!string.IsNullOrEmpty(empName.text))
{
tempStr = pm.ToPersian(empName.text);
tempStr = Regex.Replace(tempStr, @"\s+", " ");
tempStr = tempStr.Trim();
//empName.text = ReverseString(empName.text);
//empName.text = tempStr;
Debug.Log(tempStr);
}
}
private string ReverseString(string s)
{
char[] arr = s.ToCharArray();
Array.Reverse(arr);
return new string(arr);
}
Любое предложение?
Я сделал некоторые исследования, но единственное, что я нашел, где люди задают один и тот же вопрос, и никто из них не имел никаких ответов либо. –
Смешивание uGUI ('InputField') с OnGUI? Не делай этого. Удалите код OnGUI и используйте ['inputField.onEndEdit.AddListener'] (http://stackoverflow.com/a/38909364/3785314), чтобы зарегистрироваться на событие отправки на' InputField'. – Programmer