У меня есть обработчик касания, который реагирует на нажатие на представление, в котором я нарисовал какой-то атрибутивный текст. Благодаря этому я дошел до точки, где у меня есть CTRunRef
(и связанная строка), а также количество глифов в этом цикле.
Что я не могу понять, так это то, как я могу взять этот цикл глифов и, учитывая мою приписанную строку, сопоставить ее с символамив строке.
В частности, проблема в том, что я хотел бы знать, какое слово пользователь коснулся в представлении, чтобы я мог обработать, является ли это слово URL-адресом, и запустить пользовательский метод делегата, чтобы яможно открыть веб-просмотр с ним.У меня есть все возможные подстроки, я просто не знаю, как отобразить, где пользователь нажал на определенную подстроку.
Любая помощь будет принята с благодарностью.
ОБНОВЛЕНИЕ : На самом деле я пошел и сделал это по-другому, по предложению другого человека из стека overflow.По сути, я установил пользовательский атрибут @"MyAppLinkAddress"
со значением URL-адреса, который я нашел, когда преобразовывал строку в строку с атрибутами.Это происходит до того, как я нарисую строку.Поэтому, когда происходит событие касания, я просто проверяю, существует ли этот атрибут, и если да, вызываю мой метод делегата, если нет, просто игнорирую его.Сейчас это работает так, как мне хотелось бы, но я собираюсь оставить этот вопрос открытым еще на несколько дней, если кто-то может придумать ответ, я с радостью приму его, если это рабочее решение, так что некоторые другиевозможно, эта информация окажется полезной в будущем.