2013-03-20 5 views
7

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

-[NSLayoutManager replaceTextStorage:] 

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

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

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

ответ

10

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

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

[aTextView.layoutManager replaceTextStorage: newStorage]; 

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

Смежные вопросы