Instance Method インスタンスメソッド

enumerateAttribute(_:in:options:using:)

Executes the specified closure for each range of a particular attribute in the attributed string. 指定されたクロージャを、属性付文字列の中のある特定の属性の範囲それぞれに対して実行します。

Declaration 宣言

func enumerateAttribute(_ attrName: NSAttributedString.Key, 
                     in enumerationRange: NSRange, 
                options opts: NSAttributedString.EnumerationOptions = [], 
                  using block: (Any?, NSRange, UnsafeMutablePointer<ObjCBool>) -> Void)

Parameters パラメータ

attrName

The name of the attribute to enumerate. 列挙することになる属性の名前。

enumerationRange

The range over which the attribute values are enumerated. それに対して属性値が列挙されるところの範囲。

opts

The options used by the enumeration. For possible values, see NSAttributedString.EnumerationOptions. 列挙によって使われるオプション。可能な値として、NSAttributedString.EnumerationOptionsを見てください。

block

A closure to apply to ranges of the specified attribute in the attributed string. 属性付文字列の中のこの指定された属性の範囲に適用されるクロージャ。

The closure takes three arguments: クロージャは3つの引数をとります:

  • The value for the specified attribute. 指定された属性に対する値。

  • The range of the attribute value in the attributed string. 属性付文字列の中の属性値の範囲。

  • A reference to a Boolean value, which you can set to true within the closure to stop further processing of the attributed string. あるブール値への参照、それはあなたがクロージャの内部でtrueに設定することで、属性付文字列のこの先の処理を停止できます。

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. このメソッドがNSMutableAttributedStringのインスタンスによって呼び出されるならば、変化(削除、追加、または変更)は、その変化がブロックに提供される範囲内である場合にのみ許可されます。ある変化の後、列挙は処理された範囲にすぐに続く範囲で継続します、変化によってもたらされる長さでの如何なる変更も調整します。例えば、blockが位置Nで始まる範囲で呼び出される、そしてブロックは全ての文字を提供された範囲において削除するならば、次の呼び出しはまたNを範囲の位置として渡されるでしょう。

See Also 参照

Enumerating over Attributes in a String 文字列中の属性の全てを列挙する