A string that has associated attributes (such as visual style, hyperlinks, or accessibility data) for portions of its text.
SDKs
- iOS 3.2+
- macOS 10.0+
- Mac Catalyst 13.0+
- tvOS 9.0+
- watchOS 2.0+
Framework
- Foundation
Declaration
class NSAttributedString : NSObject
Overview
An NSAttributed
object manages character strings and associated sets of attributes (for example, font and kerning) that apply to individual characters or ranges of characters in the string. An association of characters and their attributes is called an attributed string. The cluster’s two public classes, NSAttributed
and NSMutable
, declare the programmatic interface for read-only attributed strings and modifiable attributed strings, respectively.
An attributed string identifies attributes by name, using an NSDictionary
object to store a value under the given name. You can assign any attribute name/value pair you wish to a range of characters—it is up to your application to interpret custom attributes (see Attributed String Programming Guide). If you are using attributed strings with the Core Text framework, you can also use the attribute keys defined by that framework.
You use attributed strings with any APIs that accept them, such as Core Text. The AppKit and UIKit frameworks also provide a subclass of NSMutable
, called NSText
, to provide the storage for the extended text-handling system. In iOS 6 and later you can use attributed strings to display formatted text in text views, text fields, and some other controls. Both AppKit and UIKit also define extensions to the basic attributed string interface that allows you to draw their contents in the current graphic context.
The default font for NSAttributed
objects is Helvetica 12-point, which may differ from the default system font for the platform. Thus, you might want to create new strings with non-default attributes suitable for your application. You can also use the NSParagraph
class and its subclass NSMutable
to encapsulate the paragraph or ruler attributes used by the NSAttributed
classes.
Be aware that comparisons of NSAttributed
objects using the is
method look for exact equality. The comparison includes both a character-by-character string equality check and an equality check of all attributes. Such a comparison is not likely to yield a match if the string has many attributes, such as attachments, lists, and tables, for example.
The NSAttributed
class is “toll-free bridged” with its Core Foundation counterpart, CFAttributed
. See Toll-Free Bridging for more information.