NSTextStorage
Наследование
-
NSObject -
NSAttributedString -
NSMutableAttributedString -
NSTextStorage
-
NSObject -
NSAttributedString -
NSMutableAttributedString -
NSTextStorage
Соответствует
-
AnyObject -
CVarArgType -
Сопоставимый -
Hashable -
NSCoding -
NSCopying -
NSMutableCopying -
NSObjectProtocol -
NSSecureCoding -
Печатаемый -
NSCopying -
NSMutableCopying -
NSObject -
NSSecureCoding
Оператор импорта
Swift
import UIKit
Objective C
@import UIKit;
Доступность
Доступный в iOS 7.0 и позже.
NSTextStorage полуконкретный подкласс NSMutableAttributedString это управляет рядом клиента NSLayoutManager объекты, уведомляя их относительно любых изменений в его символах или атрибутах так, чтобы они могли передать и восстановить изображение текста по мере необходимости. NSTextStorage определяет фундаментальный механизм хранения расширенной текстовой системы обработки Набора текста.
NSTextStorage, NLayoutManager, и NSTextContainer может быть получен доступ от подпотоков, пока приложение гарантирует доступ от единственного потока.
Разделение на подклассы примечаний
NSTextStorage управление изменениями реализаций (через beginEditing и endEditing), проверка атрибутов, делегат, обрабатывающий и уведомление управления расположением. Один аспект, который это не реализует, управляет фактическим приписанным строковым хранением — это оставляют до подклассов, которые должны переопределить два NSAttributedString примитивы:
И подклассы должны переопределить два NSMutableAttributedString примитивы:
- (недействительный) replaceCharactersInRange: (NSRange) располагаются withString: (NSString *) str;
- (недействительный) setAttributes: (NSDictionary *) attrs диапазон: (NSRange) диапазон;
Эти примитивы должны выполнить изменение, затем вызвать edited:range:changeInLength: заставить все остальное происходить.
-
delegateСвойствоТекстовый делегат хранения.
Объявление
Swift
unowned(unsafe) var delegate: NSTextStorageDelegate?Objective C
@property(assign, nonatomic) id< NSTextStorageDelegate > delegateОператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
editedMaskСвойствоВиды редактирований, ожидающих для получателя.
Объявление
Swift
var editedMask: NSTextStorageEditActionsObjective C
@property(nonatomic) NSTextStorageEditActions editedMaskОбсуждение
Указывает незаконченные изменения для атрибутов, символов или обоих. Используйте C поразрядная операция И для тестирования использования маски
NSTextStorageEditedAttributesиNSTextStorageEditedCharacters(тестирующий на равенство перестанет работать, если дополнительные флаги маски будут добавлены позже). Делегат получателя и менеджеры по расположению могут использовать эту информацию для определения природы редактирований в их соответствующих методах уведомления.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
changeInLengthСвойствоДельта длины для незаконченных изменений.
Обсуждение
Это свойство предоставляет информацию о текущем состоянии редактирования, которое может быть особенно полезным, когда там являются выдающимися
beginEditingвызовы или во времяprocessEditing.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
editedRangeСвойствоДиапазон получателя, в который незаконченные изменения были внесены, ли из символов или атрибутов.
Обсуждение
Делегат получателя и менеджеры по расположению могут использовать эту информацию для определения природы редактирований в их соответствующих методах уведомления.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Уведомляет и записывает недавнее изменение.
Объявление
Swift
func edited(_editedMask: NSTextStorageEditActions, rangeeditedRange: NSRange, changeInLengthdelta: Int)Objective C
- (void)edited:(NSTextStorageEditActions)editedMaskrange:(NSRange)editedRangechangeInLength:(NSInteger)deltaПараметры
editedMaskДействие редактирования выполняется.
editedRangeДиапазон в исходной строке (перед редактированием).
deltaДельта длины для изменений редактирования.
Обсуждение
Если там являются не выдающимися
beginEditingвызовы, это вызовы методаprocessEditingинициировать процессы постредактирования. Этот метод должны вызвать примитивы после того, как изменения будут внесены, если разделено на подклассы и переопределено.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Гарантирует, что атрибуты фиксируются в данном диапазоне.
Объявление
Swift
func ensureAttributesAreFixedInRange(_range: NSRange)Objective C
- (void)ensureAttributesAreFixedInRange:(NSRange)rangeПараметры
rangeДиапазон символов, атрибуты которых могли бы быть исследованы.
Обсуждение
NSTextStorageобъект с помощью ленивой фиксации атрибута требуется, чтобы вызывать этот метод прежде, чем получить доступ к любым атрибутам вrange. Этот метод дает атрибут, фиксирующий шанс произойти при необходимости.NSTextStorageподклассы, желающие поддерживать лень, должны вызвать этот метод от всех средств доступа атрибута, которые они реализуют.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
fixesAttributesLazilyСвойствоУказывает, фиксирует ли получатель атрибуты лениво. (только для чтения)
Объявление
Swift
var fixesAttributesLazily: Bool { get }Objective C
@property(readonly, nonatomic) BOOL fixesAttributesLazilyОбсуждение
По умолчанию, пользовательский
NSTextStorageподклассы не ленивы, но предоставленный конкретный подкласс ленив по умолчанию.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Лишает законной силы атрибуты в указанном диапазоне.
Объявление
Swift
func invalidateAttributesInRange(_range: NSRange)Objective C
- (void)invalidateAttributesInRange:(NSRange)rangeПараметры
rangeДиапазон символов, атрибуты которых должны быть лишены законной силы.
Обсуждение
Вызванный от
processEditingлишить законной силы атрибуты когда текстовые изменения среды хранения. Если получатель не ленив, этот метод просто вызываетfixAttributesInRange:. Если ленивая фиксация атрибута имеет силу, этот метод вместо этого записывает фиксацию необходимости диапазона.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Триггерные операции постредактирования.
Объявление
Swift
func processEditing()Objective C
- (void)processEditingОбсуждение
Отсылает сообщение делегата
textStorage:WillProcessEditing:range:changeInLength:, фиксирует атрибуты, отсылаетtextStorage:didProcessEditing:range:changeInLength:, и уведомляет менеджеров по расположению изменения сprocessEditingForTextStorage:edited:range:changeInLength:invalidatedRange:метод. Вызванный отedited:range:changeInLength:илиendEditing.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Добавляет менеджер по расположению к получателю.
Объявление
Swift
func addLayoutManager(_aLayoutManager: NSLayoutManager)Objective C
- (void)addLayoutManager:(NSLayoutManager *)aLayoutManagerПараметры
aLayoutManagerМенеджер по расположению добавил к получателю.
Обсуждение
Этот метод отправляет
setTextStorage:кaLayoutManagerс получателем.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Удаляет менеджера по расположению из группы получателя менеджеров по расположению.
Объявление
Swift
func removeLayoutManager(_aLayoutManager: NSLayoutManager)Objective C
- (void)removeLayoutManager:(NSLayoutManager *)aLayoutManagerПараметры
aLayoutManagerМенеджер по расположению для удаления.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
См. также
-
layoutManagersСвойствоМенеджеры по расположению получателя. (только для чтения)
Объявление
Swift
var layoutManagers: [AnyObject] { get }Objective C
@property(readonly, nonatomic) NSArray *layoutManagersОператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Эти константы используются в
edited:range:changeInLength:.Объявление
Swift
struct NSTextStorageEditActions : RawOptionSetType { init(_rawValue: UInt) init(rawValuerawValue: UInt) static var EditedAttributes: NSTextStorageEditActions { get } static var EditedCharacters: NSTextStorageEditActions { get } }Objective C
typedef enum : NSUInteger { NSTextStorageEditedAttributes = (1 << 0), NSTextStorageEditedCharacters = (1 << 1) } NSTextStorageEditActions;Константы
-
EditedAttributesNSTextStorageEditedAttributesАтрибуты были добавлены, удалены или изменены.
Доступный в iOS 7.0 и позже.
-
EditedCharactersNSTextStorageEditedCharactersСимволы были добавлены, удалены или заменены.
Доступный в iOS 7.0 и позже.
Обсуждение
Этими значениями является также OR'ed вместе в уведомлениях для информирования экземпляров
NSLayoutManagerиз редактирования изменений. ПосмотритеtextStorage:edited:range:changeInLength:invalidatedRange:.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
-
Отправленный после того, как текстовое хранение заканчивает обрабатывать редактирования в
processEditing.Наблюдатели кроме делегата не должны вносить дальнейшие изменения в текстовое хранение. Объект уведомления является текстовым объектом хранения, обработавшим редактирования. Это уведомление не содержит a
userInfoсловарь.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Отправленный, прежде чем текстовое хранение заканчивает обрабатывать редактирования в
processEditing.Наблюдатели кроме делегата не должны вносить дальнейшие изменения в текстовое хранение. Объект уведомления является текстовым объектом хранения, собирающимся обработать редактирования. Это уведомление не содержит a
userInfoсловарь.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
