Написание направления строки - PullRequest
0 голосов
/ 28 февраля 2012

Сценарий: пользователь может динамически менять язык клавиатуры и вводить текст в UITextView.

Проблема: если пользователь меняет язык клавиатуры на арабский и вводит текст, текст идет в направлении справа налево.

Есть ли способ, которым я могу определить направление письма. Либо из UITextView или Введенный текст или Немного магии с клавиатуры

Пожалуйста, помогите мне решить эту проблему.

Спасибо, Roshit

PS: TextAllignment UITextView не делает волшебство ..

EDIT: Я также преобразовываю NSString из текстового поля в NSAttributedString и рисую с помощью CoreText. Могу ли я случайно получить направление письма в этом сценарии ( NSAttributedString или CoreText )

Ответы [ 2 ]

1 голос
/ 01 марта 2012

Спасибо @rob, вот что я придумал:

UITextPosition *aPosition;
UITextWritingDirection aDirection = [aTextView baseWritingDirectionForPosition:aPosition inDirection:UITextStorageDirectionForward];

switch (aDirection) {
    case UITextWritingDirectionNatural:
        NSLog(@"Natural");
        break;

    case UITextWritingDirectionLeftToRight:
        NSLog(@"L-R");
        break;

    case UITextWritingDirectionRightToLeft:
        NSLog(@"R-L");
        break;

    default:
        break;
}

Работало отлично.

Просто из любопытства .. Я использовал: UITextPosition *aPosition; Я не инициализировал его и не установил позицию для него. Тогда как это работает. @ rob- Можно ли помочь?

1 голос
/ 01 марта 2012

Взгляните на baseWritingDirectionForPosition:inDirection: метод UITextInput протокола .

И UITextView, и UITextField реализуют протокол UITextInput.

...