Я думаю, что самый простой способ сделать это подкласс NSTextContainer и переопределить
- (CGRect)lineFragmentRectForProposedRect:(CGRect)proposedRect atIndex:(NSUInteger)characterIndex writingDirection:(NSWritingDirection)baseWritingDirection remainingRect:(CGRect *)remainingRect
В пользовательском методе, вы бы проверить атрибуты на characterIndex
и посмотреть, если они соответствуют абзац, текст контейнера назначается. Если они есть, просто верните реализацию super
, иначе возвращайте CGRectZero
, чтобы указать, что предложенный прямоугольник недействителен для этого текстового контейнера. Это означает, что вам придется отслеживать атрибуты абзаца и текстовые контейнеры, к которым они соотносятся (и наоборот).
Спасибо за идею! Я собираюсь попробовать это, когда получаю шанс и вернусь к вам. –
ссылка разработчика мертва – Suragch
Не удается найти обновленную ссылку, поэтому я ее удалил. –