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: NSTextStorageEditActions
Objective 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)
editedMask
range:(NSRange)editedRange
changeInLength:(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;
Константы
-
EditedAttributes
NSTextStorageEditedAttributes
Атрибуты были добавлены, удалены или изменены.
Доступный в iOS 7.0 и позже.
-
EditedCharacters
NSTextStorageEditedCharacters
Символы были добавлены, удалены или заменены.
Доступный в 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 и позже.