Instance Method

enumerateAttributesInRange:options:usingBlock:

Executes the specified block for each range of attributes in the attributed string.

Declaration

- (void)enumerateAttributesInRange:(NSRange)enumerationRange options:(NSAttributedStringEnumerationOptions)opts usingBlock:(void (^)(NSDictionary<NSAttributedStringKey, id> *attrs, NSRange range, BOOL *stop))block;

Parameters

enumerationRange

The range over which the attributes are enumerated.

opts

The options used by the enumeration. For possible values, see NSAttributedStringEnumerationOptions.

block

The block to apply to ranges of attributes in the attributed string.

The block takes three arguments:

attrs

A dictionary of attribute values keyed by name.

range

The range of the attribute values in the attributed string.

stop

A reference to a Boolean value. The block can set the value to YES within the block to stop further processing of the attributed string.

Discussion

If this method is called by an instance of NSMutableAttributedString, mutation (deletion, addition, or change) is allowed only if the mutation is within the range provided to the block. After a mutation, the enumeration continues with the range immediately following the processed range, adjusting for any change in length caused by the mutation. For example, if block is called with a range starting at location N, and the block deletes all the characters in the provided range, the next call will also pass N as the location of the range.

See Also

Enumerating over Attributes in a String

- enumerateAttribute:inRange:options:usingBlock:

Executes the specified block for each range of a particular attribute in the attributed string.