2016-09-10 3 views
0

Я пытаюсь написать персидские поля ввода единства. Персидский язык имеет право на левый язык, а алфавит подобен арабскому.Запись 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); 
} 

Любое предложение?

+0

Я сделал некоторые исследования, но единственное, что я нашел, где люди задают один и тот же вопрос, и никто из них не имел никаких ответов либо. –

+1

Смешивание uGUI ('InputField') с OnGUI? Не делай этого. Удалите код OnGUI и используйте ['inputField.onEndEdit.AddListener'] (http://stackoverflow.com/a/38909364/3785314), чтобы зарегистрироваться на событие отправки на' InputField'. – Programmer

ответ

0

Вы можете использовать следующую открытую исходную библиотеку под названием UPersian

Он хорошо работает, и я думаю, что это единственное решение там.

enter image description here

Смежные вопросы