Является ли CoreText просто структурой рисования/макета для текста?

Я использую CoreText для отображения текста, создания фреймсеттера, фреймов и так далее, и все в порядке. Я даже могу отформатировать текст, но это все делается до того, как я рисую. Теперь вопрос, который сводит меня с ума:

CoreText предназначен только для рендеринга текста? Я не могу получить ссылку на CTRuns или Glyphs, чтобы выделить их?

Еще один дополнительный большой вопрос: приложение Pages не использует CoreText, кто-нибудь знает? В Pages вы можете выбрать любой уже нарисованный стилизованный текст!

Все, что я хочу, это нарисовать текст и позволить пользователю нажать, чтобы выбрать любой текст, или дважды нажать, чтобы выбрать абзац.

Пожалуйста, кто-нибудь, какой-нибудь свет?

Заранее спасибо.


person Daniel Bonates    schedule 28.08.2010    source источник


Ответы (2)


CoreText предназначен только для отображения текста. Реализация взаимодействия с пользователем — совсем другое дело. Вам необходимо реализовать протокол UITextInput, см. здесь. Это большая работа.

Если вы просто хотите вводить текст и не нуждаетесь в расширенной типографике, просто используйте UITextView или UIWebView.

person Yuji    schedule 28.08.2010
comment
Хм, на самом деле я просто хочу нарисовать текст с помощью CoreText, но дать пользователю возможность выбрать любой текст... Я знаю, что могу рисовать глифы и их фон, имитируя выделение, но мне нужно делать это на основе прикосновений пользователя. , достигая нужных символов, слов и строк... - person Daniel Bonates; 29.08.2010
comment
К сожалению, нет готового представления, которое бы это делало. Вам нужно много работать. Я предполагаю, что внутри Pages есть очень хороший класс, который делает это, но он еще не общедоступен в iOS 3.2. Будем надеяться, что это будет вместе с iOS 4 для iPad. - person Yuji; 29.08.2010
comment
Было заявлено, что все приложения iWork используют только общедоступные API для выполнения своих задач, поэтому это будет внутренняя реализация Pages, а не ОС. Тем не менее, да, было бы неплохо, если бы что-то из этого перешло из Pages обратно в ОС. - person Brad Larson; 30.08.2010
comment
Я это и имел в виду, спасибо за разъяснение. Честно говоря, я думаю, что Apple имеет полное право использовать приватный фреймворк в своих приложениях, но запрещает нам их использовать, потому что они знают, какую часть им нужно переписать при изменении приватного фреймворка. - person Yuji; 30.08.2010

вы можете получить границы изображения CTLines и CRRuns через основной текст, вот небольшой пример, который я сделал для своего приложения, он еще не идеален, но вы можете получить небольшое представление о том, как это работает.

textViewProject

person George Matiashvili    schedule 16.12.2010
comment
Спасибо за пример... Я прочитал достаточно, чтобы понять, что это сложно. Образец, который вы предоставили, обязательно поможет. Спасибо!! - person morgman; 25.05.2011