2014-02-02 2 views
0

В настоящее время я реализую приложение для перевода. Тот, который, когда пользователь выбирает слово из UITextView, приложение переводит на другой язык.Выберите только целые слова uiTextView

Я хотел бы ограничить варианты выбора для только целых слов, например:

«Hello World», а не «Hello Wo»

Подобно приложения IOS Kindle при определении слов в словаре ,

У меня есть UITextViewDelegate в моем файле .h.

я в настоящее время в моей .m:

- (void)textViewDidChangeSelection:(UITextView *)textView{ 
    [self translate]; 
} 

и

- (void)translate { 

    if(![[self.descriptionTextView selectedTextRange] isEmpty]) { 

     NSString * selectedWord = [self.descriptionTextView textInRange:[self.descriptionTextView selectedTextRange]]; 

... 

я затем, чтобы преобразовать это в encodedString и пожаров от Google Translate API. Есть ли способ выбрать только целые слова из UITextView? Так что выбор увеличивается в целых фрагментах слова.

+0

Я не знаю, можно ли принудительно отбирать на полных словах, но один способ перейти оттуда - использовать регулярное выражение, чтобы найти кусок миров, начинающийся с символа '', заканчивающийся на '', ', . ','? ' или других меток, и содержит выбранный текст ... тогда у вас обязательно будут только полные слова. Я оставляю это, хотя в качестве комментария, если появится лучший ответ –

+3

Вы всегда можете получить диапазон выбора и проверить, есть ли диапазон-1 = '' и диапазон + 1 = '' или пунктуация ('.', ' ,','!' и т.д). –

+0

Я отдам это! – AJ9

ответ

2

Вы можете добавить себя в текстовое поле inputDelegate и ввести код selectionDidChange:. При изменении выбора вы можете использовать positionWithinRange:atCharacterOffset: для исследования вокруг выбранного диапазона для пробелов. Как только вы найдете нужный диапазон, вы можете обновить selectedTextRange.

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