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(string
aString
: 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(attributedString
attributedString
: 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 *)
aString
attributes:(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)
index
effectiveRange:(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)
index
longestEffectiveRange:(NSRangePointer)aRange
inRange:(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 *)
attributeName
atIndex:(NSUInteger)index
effectiveRange:(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 *)
attributeName
atIndex:(NSUInteger)index
longestEffectiveRange:(NSRangePointer)aRange
inRange:(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
Приписанная строка, с которой можно сравнить получатель.
Возвращаемое значение
YES
true
если получатель равенotherString
, иначеNO
false
.Обсуждение
Приписанные строки должны соответствовать и в символах и в атрибутах, чтобы быть равными.
Оператор импорта
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 *)
attrName
inRange:(NSRange)enumerationRange
options:(NSAttributedStringEnumerationOptions)opts
usingBlock:(void (^)(id value, NSRange range, BOOL *stop))block
Параметры
attrName
Имя атрибута.
enumerationRange
Если не -
NULL
, содержит максимум, передвигаются, по которому атрибуты и значения перечисляются, отсекаются кenumerationRange
.opts
Опции используются перечислением. Значения могут быть объединены с помощью C-битового-«ИЛИ». Значения описаны в NSAttributedStringEnumerationOptions.
block
Блок для применения к диапазонам атрибута в приписанной строке.
Блок берет три параметра:
value
attrName
значение.range
NSRange
указание выполнения атрибута.stop
Ссылка на булево значение. Блок может установить значение в
YES
true
остановить последующую обработку набора.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)
enumerationRange
options:(NSAttributedStringEnumerationOptions)opts
usingBlock:(void (^)(NSDictionary *attrs, NSRange range, BOOL *stop))block
Параметры
enumerationRange
Если не -
NULL
, содержит максимум, передвигаются, по которому атрибуты и значения перечисляются, отсекаются кenumerationRange
.opts
Опции используются перечислением. Значения могут быть объединены с помощью C-bitwise
OR
. Значения описаны в NSAttributedStringEnumerationOptions.block
Блок для применения к диапазонам атрибута в приписанной строке.
Блок берет три параметра:
attrs
NSDictionary
это содержит атрибуты для диапазона.range
NSRange
указание выполнения атрибута.stop
Ссылка на булево значение. Блок может установить значение в
YES
true
остановить последующую обработку набора.stop
параметром является единственный параметр. Необходимо только когда-либо устанавливать эту булевскую переменную вYES
true
в Блоке.Обсуждение
Если этот метод отправляется в экземпляр
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;
Константы
-
Reverse
NSAttributedStringEnumerationReverse
Заставляет перечисление происходить наоборот.
Доступный в OS X v10.6 и позже.
-
LongestEffectiveRangeNotRequired
NSAttributedStringEnumerationLongestEffectiveRangeNotRequired
Если
NSAttributedStringEnumerationLongestEffectiveRangeNotRequired
опция предоставляется, тогда самое долгое вычисление диапазона измерений не выполняется; блоки могут быть вызваны с последовательными выполнениями атрибута, имеющими то же значение.Доступный в OS X v10.6 и позже.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.6 и позже.
-