Правильный способ заменить 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, вы можете манипулировать им всеми одинаковыми методами.