Protocol

AttributedStringKey

A type that defines an attribute’s name and type. ある型、それはある属性のもつ名前と型を定義します。

Declaration 宣言

protocol AttributedStringKey

Overview 概要

You don’t instantiate types that conform to this protocol. Rather, dynamic member lookup uses this type as the basis for looking up key paths on AttributedString subtypes when using an AttributeScope type parameter. When it also conforms to CodableAttributedStringKey, (or DecodableAttributedStringKey/EncodableAttributedStringKey if the type isn’t fully codable), the AttributedStringKey describes which attributes of an AttributedString support encoding or decoding. あなたは、このプロトコルに準拠する型それらをインスタンス化しません。というより、動的メンバ検索がこの型を使います、キーパスをAttributedString下位クラス上で検索するための基礎として、AttributeScope型パラメータを使う時に。それがまたCodableAttributedStringKeyに(また型が完全にコード化可能でないならばDecodableAttributedStringKey/EncodableAttributedStringKeyに)準拠する時、AttributedStringKeyAttributedStringのどの属性がエンコーディングやデコーディングをサポートするかを記述します。

Attribute owners — typically frameworks — declare a key like the following: 属性所有者 — 概してフレームワーク — は、以下のようなキーを宣言します:


enum OutlineColorAttribute : AttributedStringKey {
    typealias Value = Color
    static let name = "OutlineColor"
}

Callers can use these types to get attribute values from attributed strings, but typically you want to reference them by name. Attribute owners enable this by creating one or more structures that conform to AttributeScope, in which they provide short names for their attributes that map to the AttributedStringKey type. The following example shows how to do this: 呼び出し側は、これらの型を使って属性値を属性付き文字列から取得できます、しかし概してあなたはそれらを名前によって参照する方がいいでしょう。属性所有者は、これをAttributeScopeに準拠する1つ以上の構造体を作成することによって可能にします、それでそれらは短い名前をそれらの属性のために提供します、それらはAttributedStringKey型にマップします。以下の例はどのようにこれをするかを示します:


struct MyTextStyleAttributes : AttributeScope {
    let outlineColor : OutlineColorAttribute // OutlineColorAttribute.Value == Color
    let shadowColor : ShadowColorAttribute // 
ShadowColorAttribute.Value == Color
    // etc.
}

After you extend AttributeScope like this, extend AttributeDynamicLookup to allow callers to use dynamic member lookup syntax, like myAttributedString.outlineColor = .red. あなたがAttributeScopeをこのように拡張した後、AttributeDynamicLookupを拡張して呼び出し側が動的メンバ検索構文を使えるようにしてください、myAttributedString.outlineColor = .redのように。

Topics 話題

Delcaring Key Properties キープロパティを宣言する

Describing the Key キーを記述する

See Also 参照

Accessing Attributes 属性にアクセスする