プロトコル


AttributedStringKey


属性の名前と型を定義する型。


iOS 15.0+ iPadOS 15.0+ macOS 12.0+ Mac Catalyst 15.0+

tvOS 15.0+ watchOS 8.0+ visionOS 1.0+ Xcode 13.0+

protocol AttributedStringKey





概観


このプロトコルに準拠する型をインスタンス化することはありません。むしろ、動的メンバー検索では、AttributeScope 型パラメータを使用するときに、AttributedString サブタイプのキーパスを検索するための基礎としてこの型を使用します。CodableAttributedStringKey (型が完全にコーディング可能でない場合は DecodableAttributedStringKey / EncodableAttributedStringKey) にも準拠する場合、AttributedStringKey は、AttributedString のどの属性がコード化または復号化をサポートするかを記述します。


属性所有者 (通常はフレームワーク) は、以下のようなキーを宣言します。


  1. enum OutlineColorAttribute : AttributedStringKey {
  2. typealias Value = Color
  3. static let name = "OutlineColor"
  4. }


呼び出し元はこれらの型を使用して、属性付き文字列から属性値を取得できますが、通常はそれらを名前で参照する必要があります。属性の所有者は、AttributeScope に準拠する 1 つ以上の構造体を作成することでこれを可能にし、AttributedStringKey 型にマッピングするそれらの属性の短縮名を提供します。以下の例は、これを行う方法を示しています。


  1. struct MyTextStyleAttributes : AttributeScope {
  2. let outlineColor : OutlineColorAttribute // OutlineColorAttribute.Value == Color
  3. let shadowColor : ShadowColorAttribute // ShadowColorAttribute.Value == Color
  4. // etc.
  5. }


このように AttributeScope を拡張した後、AttributeDynamicLookup を拡張して、呼び出し元が myAttributedString.outlineColor = .red などの動的メンバー検索構文を使用できるようにします。






トピックス


キープロパティの宣言


static var name: String

キーの名前。

必須


associatedtype Value

キー値の型。

必須



キーの説明


var description: String

インスタンスのテキスト表現。



型プロパティ


static var inheritedByAddedText: Bool

必須 デフォルトの実装が提供されます。


static var invalidationConditions: Set<AttributedString.AttributeInvalidationCondition>?

必須 デフォルトの実装が提供されます。


static var runBoundaries: AttributedString.AttributeRunBoundaries?

必須 デフォルトの実装が提供されます。






関連


以下により継承


DecodableAttributedStringKey


EncodableAttributedStringKey


MarkdownDecodableAttributedStringKey


ObjectiveCConvertibleAttributedStringKey






以下も見よ


属性へのアクセス


subscript<T>(T.Type) -> T.Value?

指定されたキーに対応する属性を返します。


subscript<K>(dynamicMember: KeyPath<AttributeDynamicLookup, K>) -> K.Value?

指定されたキーパスに対応する属性を返します。


subscript<S>(dynamicMember: KeyPath<AttributeScopes, S.Type>) -> ScopedAttributeContainer<S>

指定されたキーパスに対応する属性コンテナを返します。


subscript<K>(dynamicMember: KeyPath<AttributeDynamicLookup, K>) -> AttributeContainer.Builder<K>

属性チェーンの構築の一部として、変更された属性コンテナを返します。


static subscript<K>(dynamicMember: KeyPath<AttributeDynamicLookup, K>) -> AttributeContainer.Builder<K>

静的メソッドとして使用するために、属性チェーンの構築の一部として、変更された属性コンテナを返します。


struct AttributeContainer.Builder

属性値を設定して属性コンテナを反復的に構築する型。















トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ