Я использую UITextView
для хранения статического содержимого (на китайском языке, что означает, что все символы имеют фиксированную ширину). Я хочу, чтобы пользователи нажимали на символ в тексте и отображали словарную информацию для этого символа. Я знаю все проблемы, связанные с отсутствием копирования и вставки и тому подобное, но я надеюсь, что будет способ сделать это, не дожидаясь прошивки iPhone 3.0.
Сначала я подумал об использовании свойства UITextView
s selectedIndex
. К сожалению, когда UITextView
не редактируется, следующий код в UITextView
всегда возвращает длину всего текстового блока:
NSRange touchPoint = self.selectedRange;
NSLog(@"Selection: %d", touchPoint.location);
Полагаю, в этом есть смысл, как и в случае с нередактируемым UITextView
нет возможности выбрать точку вставки, но мне это не помогает. :)
Другой подход заключается в вычислении с использованием того факта, что китайский текст имеет фиксированную ширину, место, где происходит щелчок, и какой текст должен находиться под этим местом в данный момент, но это осложняется пунктуацией, которая может привести к преждевременному переносу строки, в результате чего предшествующие символы по строке.
Есть ли другой способ узнать, какой текст находится под событием касания, которое мне не хватает?