Правильный способ заменить NSTextStorage в NSTextView?

Я делаю некоторые приложения для просмотра текста. В настоящее время мне нужны очень частые и точные навыки обработки строк, поэтому я хочу создать подкласс NSTextStorage учебный класс. Но я не смог найти какой-либо способ установить новое хранилище текста NSTextView, Единственный метод, который я мог найти, был

-[NSLayoutManager replaceTextStorage:]

метод. Но это сбивает с толку, это то, что я искал. Потому что, кажется, просто замените текстовое хранилище связанных NSLayoutManager вместо NSTextView.

Я также рассмотрел создание подклассов NSTextView и переопределение -textStorage метод, но если класс не предназначен для создания подклассов, он даст неопределенный результат.

Кто-нибудь пытался использовать пользовательский NSTextStorage на NSTextView? Как я могу это сделать? Или это запрещено дизайном?

1 ответ

Решение

Вы можете сделать что-то вроде этого, чтобы изменить хранилище для NSTextView:

NSTextStorage *newStorage = [[NSTextStorage alloc] initWithString: @"test"];

[aTextView.layoutManager replaceTextStorage: newStorage];

Поскольку NSTextStorage является подклассом NSMutableAttributedString, вы можете манипулировать им всеми одинаковыми методами.

Другие вопросы по тегам