NSAttributedString
NSAttributedString объект управляет символьными строками и связанными наборами атрибутов (например, шрифт и использующий кернинг), которые применяются к отдельным символам или диапазонам символов в строке. Ассоциацию символов и их атрибутов вызывают приписанной строкой. Два общедоступных класса кластера, NSAttributedString и NSMutableAttributedString, объявите программируемый интерфейс для приписанных строк только для чтения и модифицируемых приписанных строк, соответственно.
Приписанная строка идентифицирует атрибуты по имени, с помощью NSDictionary возразите для хранения значения под именем. Можно присвоить любое название атрибута / пара значения, которой Вы желаете к диапазону символов — это до Вашего приложения для интерпретации пользовательских атрибутов (см. Приписанное Строковое Руководство по программированию). При использовании приписанных строк с Базовой текстовой платформой можно также использовать ключи атрибута, определенные той платформой. В iOS стандартные ключи атрибута описаны в разделе «Constants» дополнительной NSAttributedString UIKit Ссылки. В OS X стандартные ключи атрибута описаны в разделе «Constants» дополнительной NSAttributedString AppKit Ссылки.
Вы используете приписанные строки с любым APIs, принимающим их, такие как Базовый текст. Набор Приложения и UIKit также обеспечивают подкласс NSMutableAttributedString, вызванный NSTextStorage, обеспечить хранение для расширенной текстовой системы обработки. В iOS 6 и позже можно использовать приписанные строки для отображения форматированного текста в текстовых представлениях, текстовых полях и некоторых других средствах управления. И AppKit и UIKit также определяют расширения основного приписанного строкового интерфейса, позволяющего Вам рисовать их содержание в текущем графическом контексте.
Стандартный шрифт для NSAttributedString объекты являются Helvetica, с 12 точками, который может отличаться от системного шрифта по умолчанию для платформы. Таким образом Вы могли бы хотеть создать новые строки с атрибутами не по умолчанию, подходящими для Вашего приложения. Можно также использовать NSParagraphStyle класс и его подкласс NSMutableParagraphStyle инкапсулировать абзац или атрибуты линейки, используемые NSAttributedString классы.
Знайте это сравнения NSAttributedString объекты с помощью isEqual: метод ищет точное равенство. Сравнение включает и познаковую строковую проверку равенства и проверку равенства всех атрибутов. Если строка будет иметь много атрибутов, таких как присоединения, списки и таблицы, например, такое сравнение вряд ли приведет к соответствию.
NSAttributedString класс “бесплатный соединенный мостом” с его Базовым дубликатом Основы, CFAttributedStringRef. Посмотрите Бесплатное Образование моста для получения дополнительной информации.
Наследование
-
NSObject -
NSAttributedString -
NSMutableAttributedString
-
NSObject -
NSAttributedString -
NSMutableAttributedString
Соответствует
-
AnyObject -
CVarArgType -
Сопоставимый -
Hashable -
NSCoding -
NSCopying -
NSMutableCopying -
NSObjectProtocol -
NSPasteboardReading -
NSPasteboardWriting -
NSSecureCoding -
Печатаемый -
NSCopying -
NSMutableCopying -
NSObject -
NSSecureCoding
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
Возвраты
NSAttributedStringобъект, инициализированный с символами данной строки и никакой информации атрибута.Объявление
Swift
init(stringaString: String)Objective C
- (instancetype)initWithString:(NSString *)aStringПараметры
aStringСимволы для нового объекта.
Возвращаемое значение
NSAttributedStringобъект, инициализированный с символамиaStringи никакая информация атрибута возвращенный объект не могла бы отличаться, чем исходный получатель.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
initWithRTF:documentAttributes:(Дополнения NSAttributedString AppKit) -
Возвраты
NSAttributedStringобъект, инициализированный с символами и атрибутами другого данного, приписал строку.Объявление
Swift
init(attributedStringattributedString: NSAttributedString)Objective C
- (instancetype)initWithAttributedString:(NSAttributedString *)attributedStringПараметры
attributedStringПриписанная строка.
Возвращаемое значение
NSAttributedStringобъект, инициализированный с символами и атрибутамиattributedString. Возвращенный объект мог бы отличаться, чем исходный получатель.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
initWithRTF:documentAttributes:(Дополнения NSAttributedString AppKit) -
Возвраты
NSAttributedStringобъект, инициализированный с данной строкой и атрибутами.Объявление
Objective C
- (instancetype)initWithString:(NSString *)aStringattributes:(NSDictionary *)attributesПараметры
aStringСтрока для новой приписанной строки.
attributesАтрибуты для новой приписанной строки. Для получения информации о том, где найти ключи атрибута, можно включать в этот словарь, видеть раздел обзора этого документа.
Обсуждение
Возвраты
NSAttributedStringобъект, инициализированный с символамиaStringи атрибутыattributes. Возвращенный объект мог бы отличаться от исходного получателя.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
initWithRTF:documentAttributes:(Дополнения NSAttributedString AppKit)
-
Символьное содержание получателя как
NSStringобъект. (только для чтения)Обсуждение
Присоединяемые символы не удалены из значения этого свойства.
По причинам производительности это свойство возвращает текущее запоминающее устройство приписанного строкового объекта. Если Вы хотите поддержать снимок этого, поскольку Вы управляете возвращаемой строкой, необходимо сделать копию надлежащей подстроки.
Это примитивное свойство должно гарантировать эффективный доступ к символам приписанной строки; подклассы должны реализовать его для выполнения в O (1) время.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Длина строкового объекта получателя. (только для чтения)
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Возвращает атрибуты для символа в данном индексе.
Объявление
Swift
func attributesAtIndex(_index: Int, effectiveRangeaRange: NSRangePointer) -> [NSObject : AnyObject]Objective C
- (NSDictionary *)attributesAtIndex:(NSUInteger)indexeffectiveRange:(NSRangePointer)aRangeПараметры
indexИндекс, для которого можно возвратить атрибуты. Это значение должно лечь в границах получателя.
aRangeПо возврату, диапазону, по которому атрибуты и значения совпадают с теми в
index. Этот диапазон является не обязательно максимальным диапазоном, покрытым, и его степень является зависящей от реализации. При необходимости в максимальном диапазоне использоватьattributesAtIndex:longestEffectiveRange:inRange:. Если Вам не нужно это значение, передачаNULL.Возвращаемое значение
Атрибуты для символа в
index.Обсуждение
Повышения
NSRangeExceptionеслиindexлежит за пределами конца символов получателя.Для получения информации о том, где найти ключи атрибута для возвращенного словаря, посмотрите раздел обзора этого документа.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
attributesAtIndex (_: longestEffectiveRange:inRange:) - attributesAtIndex:longestEffectiveRange:inRange:Возвращает атрибуты для символа в данном индексе, и ссылкой диапазон, по которому применяются атрибуты.
Объявление
Swift
func attributesAtIndex(_index: Int, longestEffectiveRangeaRange: NSRangePointer, inRangerangeLimit: NSRange) -> [NSObject : AnyObject]Objective C
- (NSDictionary *)attributesAtIndex:(NSUInteger)indexlongestEffectiveRange:(NSRangePointer)aRangeinRange:(NSRange)rangeLimitПараметры
indexИндекс, для которого можно возвратить атрибуты. Это значение не должно превышать границы получателя.
aRangeЕсли не -
NULL, по возврату содержит максимум, передвигаются, по которому атрибуты и значения совпадают с теми вindex, отсеченный кrangeLimit.rangeLimitДиапазон, по которому можно искать непрерывное присутствие атрибутов в
index. Это значение не должно превышать границы получателя.Обсуждение
Повышения
NSRangeExceptionеслиindexили любая частьrangeLimitлежит за пределами конца символов получателя.Если Вам не нужна информация о диапазоне, намного более эффективно использовать
attributesAtIndex:effectiveRange:метод для получения значения атрибута.Для получения информации о том, где найти ключи атрибута для возвращенного словаря, посмотрите раздел обзора этого документа.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Возвращает значение для атрибута с именем символа в данном индексе, и ссылкой диапазон, по которому применяется атрибут.
Объявление
Swift
func attribute(_attributeName: String, atIndexindex: Int, effectiveRangeaRange: NSRangePointer) -> AnyObject?Objective C
- (id)attribute:(NSString *)attributeNameatIndex:(NSUInteger)indexeffectiveRange:(NSRangePointer)aRangeПараметры
attributeNameИмя атрибута.
indexИндекс, для которого можно возвратить атрибуты. Это значение не должно превышать границы получателя.
aRangeЕсли не -
NULL:Если именованный атрибут существует в
index, по возвратуaRangeсодержит диапазон, по которому применяется значение именованного атрибута.Если именованный атрибут не существует в
index, по возвратуaRangeсодержит диапазон, по которому не существует атрибут.
Диапазон является не обязательно максимальным диапазоном, покрытым
attributeName, и его степень является зависящей от реализации. При необходимости в максимальном диапазоне использоватьattribute:atIndex:longestEffectiveRange:inRange:. Если Вам не нужно это значение, передачаNULL.Возвращаемое значение
Значение для атрибута называют
attributeNameиз символа в индексеindex, илиnilесли нет такого атрибута.Обсуждение
Повышения
NSRangeExceptionеслиindexлежит за пределами конца символов получателя.Для получения информации о том, где найти ключи атрибута для возвращенного словаря, посмотрите раздел обзора этого документа.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
атрибут (_: atIndex:longestEffectiveRange:inRange:) - attribute:atIndex:longestEffectiveRange:inRange:Возвращает значение для атрибута с именем символа в данном индексе, и ссылкой диапазон, по которому применяется атрибут.
Объявление
Swift
func attribute(_attributeName: String, atIndexindex: Int, longestEffectiveRangeaRange: NSRangePointer, inRangerangeLimit: NSRange) -> AnyObject?Objective C
- (id)attribute:(NSString *)attributeNameatIndex:(NSUInteger)indexlongestEffectiveRange:(NSRangePointer)aRangeinRange:(NSRange)rangeLimitПараметры
attributeNameИмя атрибута.
indexИндекс, в котором можно протестировать на
attributeName.aRangeЕсли не -
NULL:Если именованный атрибут существует в
index, по возвратуaRangeсодержит полный спектр, по которому значение именованного атрибута совпадает с этим вindex, отсеченный кrangeLimit.Если именованный атрибут не существует в
index, по возвратуaRangeсодержит полный спектр, по которому атрибут не существует, отсеченный кrangeLimit.
Если Вам не нужно это значение, передача
NULL.rangeLimitДиапазон, по которому можно искать непрерывное присутствие
attributeName. Это значение не должно превышать границы получателя.Возвращаемое значение
Значение для атрибута называют
attributeNameиз символа вindex, илиnilесли нет такого атрибута.Обсуждение
Повышения
NSRangeExceptionеслиindexили любая частьrangeLimitлежит за пределами конца символов получателя.Если Вам не нужен самый длинный диапазон измерений, намного более эффективно использовать
attribute:atIndex:effectiveRange:метод для получения значения атрибута.Для получения информации о том, где найти ключи атрибута для возвращенного словаря, посмотрите раздел обзора этого документа.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Возвращает булево значение, указывающее, равен ли получатель другой данной приписанной строке.
Объявление
Swift
func isEqualToAttributedString(_otherString: NSAttributedString) -> BoolObjective C
- (BOOL)isEqualToAttributedString:(NSAttributedString *)otherStringПараметры
otherStringПриписанная строка, с которой можно сравнить получатель.
Возвращаемое значение
YEStrueесли получатель равенotherString, иначеNOfalse.Обсуждение
Приписанные строки должны соответствовать и в символах и в атрибутах, чтобы быть равными.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Возвраты
NSAttributedStringобъект, состоящий из символов и атрибутов в данном диапазоне в получателе.Объявление
Swift
func attributedSubstringFromRange(_aRange: NSRange) -> NSAttributedStringObjective C
- (NSAttributedString *)attributedSubstringFromRange:(NSRange)aRangeПараметры
aRangeДиапазон, из которого можно создать новую приписанную строку.
aRangeдолжен лечь в границах получателя.Возвращаемое значение
NSAttributedStringобъект, состоящий из символов и атрибутов вaRangeв получателе.Обсуждение
Повышения
NSRangeExceptionесли любая частьaRangeлежит за пределами конца символов получателя. Этот метод обрабатывает длину строки как допустимое значение диапазона, возвращающее пустую строку.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
enumerateAttribute (_: inRange:options:usingBlock:) - enumerateAttribute:inRange:options:usingBlock:Выполняет Блок для указанного атрибута, выполненного в указанном диапазоне.
Объявление
Swift
func enumerateAttribute(_attrName: String, inRangeenumerationRange: NSRange, optionsopts: NSAttributedStringEnumerationOptions, usingBlockblock: (AnyObject!, NSRange, UnsafeMutablePointer<ObjCBool>) -> Void)Objective C
- (void)enumerateAttribute:(NSString *)attrNameinRange:(NSRange)enumerationRangeoptions:(NSAttributedStringEnumerationOptions)optsusingBlock:(void (^)(id value, NSRange range, BOOL *stop))blockПараметры
attrNameИмя атрибута.
enumerationRangeЕсли не -
NULL, содержит максимум, передвигаются, по которому атрибуты и значения перечисляются, отсекаются кenumerationRange.optsОпции используются перечислением. Значения могут быть объединены с помощью C-битового-«ИЛИ». Значения описаны в NSAttributedStringEnumerationOptions.
blockБлок для применения к диапазонам атрибута в приписанной строке.
Блок берет три параметра:
valueattrNameзначение.rangeNSRangeуказание выполнения атрибута.stopСсылка на булево значение. Блок может установить значение в
YEStrueостановить последующую обработку набора.stopпараметром является единственный параметр. Необходимо только когда-либо устанавливать эту булевскую переменную в YES в Блоке.Обсуждение
Если этот метод отправляется в экземпляр
NSMutableAttributedString, мутация (удаление, дополнение или изменение) позволяется, пока это в диапазоне, предоставленном для блока; после мутации перечисление сразу продолжает диапазон после обработанного диапазона, после того, как длина обработанного диапазона будет приведена в соответствие с мутацией. (Перечислитель в основном предполагает, что любое изменение в длине происходит в указанном диапазоне.)Например, если
blockвызывается с диапазоном, запускающимся в расположенииN, и блок удаляет все символы в предоставленном диапазоне, следующий вызов также передаст N как индекс диапазона.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.6 и позже.
-
enumerateAttributesInRange (_: options:usingBlock:) - enumerateAttributesInRange:options:usingBlock:Выполняет Блок для каждого атрибута в диапазоне.
Объявление
Swift
func enumerateAttributesInRange(_enumerationRange: NSRange, optionsopts: NSAttributedStringEnumerationOptions, usingBlockblock: ([NSObject : AnyObject]!, NSRange, UnsafeMutablePointer<ObjCBool>) -> Void)Objective C
- (void)enumerateAttributesInRange:(NSRange)enumerationRangeoptions:(NSAttributedStringEnumerationOptions)optsusingBlock:(void (^)(NSDictionary *attrs, NSRange range, BOOL *stop))blockПараметры
enumerationRangeЕсли не -
NULL, содержит максимум, передвигаются, по которому атрибуты и значения перечисляются, отсекаются кenumerationRange.optsОпции используются перечислением. Значения могут быть объединены с помощью C-bitwise
OR. Значения описаны в NSAttributedStringEnumerationOptions.blockБлок для применения к диапазонам атрибута в приписанной строке.
Блок берет три параметра:
attrsNSDictionaryэто содержит атрибуты для диапазона.rangeNSRangeуказание выполнения атрибута.stopСсылка на булево значение. Блок может установить значение в
YEStrueостановить последующую обработку набора.stopпараметром является единственный параметр. Необходимо только когда-либо устанавливать эту булевскую переменную вYEStrueв Блоке.Обсуждение
Если этот метод отправляется в экземпляр
NSMutableAttributedString, мутация (удаление, дополнение или изменение) позволяется, пока это в диапазоне, предоставленном для блока; после мутации перечисление сразу продолжает диапазон после обработанного диапазона, после того, как длина обработанного диапазона будет приведена в соответствие с мутацией. (Перечислитель в основном предполагает, что любое изменение в длине происходит в указанном диапазоне.)Например, если
blockвызывается с диапазоном, запускающимся в расположенииN, и блок удаляет все символы в предоставленном диапазоне, следующий вызов также передаст N как индекс диапазона.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.6 и позже.
-
Эти константы описывают опции, доступные
enumerateAttribute:inRange:options:usingBlock:иenumerateAttributesInRange:options:usingBlock:методы.Объявление
Swift
struct NSAttributedStringEnumerationOptions : RawOptionSetType { init(_rawValue: UInt) init(rawValuerawValue: UInt) static var Reverse: NSAttributedStringEnumerationOptions { get } static var LongestEffectiveRangeNotRequired: NSAttributedStringEnumerationOptions { get } }Objective C
enum { NSAttributedStringEnumerationReverse = (1UL << 1), NSAttributedStringEnumerationLongestEffectiveRangeNotRequired = (1UL << 20) }; typedef NSUInteger NSAttributedStringEnumerationOptions;Константы
-
ReverseNSAttributedStringEnumerationReverseЗаставляет перечисление происходить наоборот.
Доступный в OS X v10.6 и позже.
-
LongestEffectiveRangeNotRequiredNSAttributedStringEnumerationLongestEffectiveRangeNotRequiredЕсли
NSAttributedStringEnumerationLongestEffectiveRangeNotRequiredопция предоставляется, тогда самое долгое вычисление диапазона измерений не выполняется; блоки могут быть вызваны с последовательными выполнениями атрибута, имеющими то же значение.Доступный в OS X v10.6 и позже.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.6 и позже.
-
